当前位置: 首页 > wzjs >正文

自己做的网站页面错误微信直接下载安装

自己做的网站页面错误,微信直接下载安装,大连制作企业网站,服装定制软件题目来源:力扣 此解法是在力扣官网上找到的 原作者:Storm 链接:1424. 对角线遍历 II - 力扣(LeetCode) 加上了自己的理解与分析便于理解代码 // 对角线遍历2// 给你一个列表 nums ,里面每一个元素…

题目来源:力扣

此解法是在力扣官网上找到的

原作者:Storm

链接:1424. 对角线遍历 II - 力扣(LeetCode)

加上了自己的理解与分析便于理解代码

//    对角线遍历2//    给你一个列表 nums ,里面每一个元素都是一个整数列表。//    请你依照下面各图的规则,按顺序返回 nums 中对角线上的整数。​//    每一个子列表代表一行,不同行的长度可能不同public static int[] findDiagonalOrder(List<List<Integer>> nums) {List<int[]> list = new ArrayList<int[]>();int rows = nums.size();for (int i = 0; i < rows; i++) {List<Integer> rowList = nums.get(i);int cols = rowList.size();for (int j = 0; j < cols; j++) {int num = rowList.get(j);list.add(new int[]{i + j, j, num});}}Collections.sort(list, (a, b) -> {if (a[0] != b[0]) {return a[0] - b[0];} else {return a[1] - b[1];}});int size = list.size();int[] order = new int[size];for (int i = 0; i < size; i++) {order[i] = list.get(i)[2];}return order;}

代码详细解释

1. 定义类和方法
 class Solution {public int[] findDiagonalOrder(List<List<Integer>> nums) {
  • 定义了一个名为 Solution 的类。

  • 定义了一个公共方法 findDiagonalOrder,它接收一个嵌套列表 nums 作为参数,并返回一个整数数组。

2. 创建存储元素信息的列表
List<int[]> list = new ArrayList<int[]>();int rows = nums.size();
  • 创建了一个 List<int[]> 类型的 list,用于存储每个元素的信息。每个元素信息用一个长度为 3 的整数数组表示,分别存储 i + jj 和元素值。(用于后面排序)

  • rows 变量存储了嵌套列表的行数。

3. 遍历嵌套列表
 for (int i = 0; i < rows; i++) {List<Integer> rowList = nums.get(i);int cols = rowList.size();for (int j = 0; j < cols; j++) {int num = rowList.get(j);list.add(new int[]{i + j, j, num});}}
  • 外层循环遍历每一行,获取当前行的子列表 rowList 以及当前行的列数 cols

  • 内层循环遍历当前行的每一列,获取当前元素 num,并将 [i + j, j, num] 存储到 list 中。

4. 对元素信息列表进行排序(重点排序)
Collections.sort(list, (a, b) -> {if (a[0] != b[0]) {return a[0] - b[0];} else {return a[1] - b[1];}});
  • 使用 Collections.sort 方法对 list 进行排序。

  • 排序规则是:先比较元素的 i + j 值(即 a[0]b[0]),若不相等,则按照 i + j 从小到大排序;若相等,则比较列索引 j(即 a[1]b[1]),按照列索引从小到大排序。

5. 创建结果数组并存储排序后的元素
 int size = list.size();int[] order = new int[size];for (int i = 0; i < size; i++) {order[i] = list.get(i)[2];}
  • size 存储了 list 的大小,即元素的总数。

  • 创建一个长度为 size 的整数数组 order

  • 遍历 list,将每个元素信息数组中的第三个元素(即元素值)存储到 order 数组中。

6. 返回结果数组
 return order;
  • 返回存储排序后元素的数组 order

复杂度分析

  • 时间复杂度O(Nlog**N),其中 N 是嵌套列表中元素的总数。主要时间开销在于对 list 进行排序。

  • 空间复杂度O(N),主要空间开销在于存储元素信息的 list 和结果数组 order

有更好的解法,欢迎评论或私信

http://www.dtcms.com/wzjs/810271.html

相关文章:

  • 购物网站发展规划与建设进度内容营销ppt
  • 重庆建设工程交易中心网站教育培训网站建设
  • 烟台建设集团 招聘信息网站广州旅游必去十大景点
  • 企业网站续费中职示范校建设网站
  • 门户网站模板源码知道ip怎么查域名
  • 学习网站开发教程大同建设局网站
  • 购物网站建设代码网页设计实训报告1500字
  • 网页制作免费的素材网站wordpress编辑模板插件
  • 学校部门网站建设情况汇报新中式家具
  • 成都企业建站模板网站设置了字体为黑体怎么改字体
  • 网站开发 前端 后端 如何结合手机建站程序
  • 太仓网站建设平台wordpress腾讯云cos
  • 微信平台与微网站开发设计个人网页
  • 网站开发主菜单和子菜单深圳网站建设是哪个
  • 小说网站开发流程免费简单门户网站开发
  • 网站开发建设专业的公司wordpress 页面调用标签
  • 网站开发中文摘要网页浏览器推荐
  • 招聘网站页面网站建设企业建站
  • 杭州怎么做网站电商服务
  • 贵阳中国建设银行招聘信息网站公司平台
  • 网站页面组成部分政务建设网站得必要性
  • 济南高端建站长沙民企人才网
  • 苏州正规做网站公司大岭山仿做网站
  • 苏州网站建设软件国内有做外汇的正规网站吗
  • 移动端购物网站建设帝国调用网站名称
  • 网站开发前端工程师net网站开发net网站开发
  • 购物网站开发项目意义留言网站模板
  • 中药材天地网做中药零售网站免费公众号模板编辑器
  • 专门建设网站的公司网站开发体系
  • 安阳网站设计哪家好网页设计公司建设网站