vishay欢迎光临。

漫画:如何螺旋遍历二维数组?

在周一发布的漫画中,肖辉忽略了一个小问题:当二维数组的最内层只有一行或一列时,可能会反复访问螺旋遍历。

因此,必须在第3和第4个小循环中添加其他条件。

今天发布了修订版以修复此缺陷。

谢谢大家的指正。

—————第二天——————你是什么意思?让我们以下面的二维数组为例:我们需要从左上角的元素1开始顺时针螺旋遍历,一直遍历所有元素,遍历路径如下图所示:在此遍历之后,返回的元素结果如下:1,2,3,4,5,10,15,20,19,18,17,16,16,11,6,7,8,9,14 、、 13、12-——————————等级1遍历“顶部”从左到右:遍历“右侧”从上到下:遍历“底部”从右到左:遍历“左”从底部到顶部:否。

第2层穿过“上”层。

从左到右:遍历“右”从上到下:遍历“底部”从右到左:遍历“左”从底部到顶部:遍历“顶部”。

在第3层上从左向右移动:从上到下:遍历“底部”从右到左:“左”第三层的“层”不再需要遍历,而二维数组也已遍历。

public class SpiralOrder {public static ListspiralOrder(int [] [] matrix){List list = new ArrayList(); //当二维数组为空或任意维为0时,如果n(matrix == matrix),则直接返回。

length = = 0 || matrix [0] .length = = 0){返回列表; // m是矩阵的行数=矩阵数。

长度; int m = matrix.length的数量; int m = matrix.length的数量; int m = matrix.length的数量; [0] .length; //二维数组的层数取决于行和列的较小值int size =(Math.min(m,n)+1)/ 2;大循环,从外到内遍历for(int i = 0; i //从左到右遍历“ top”,用于(int j = i; j到bottom / list.j(matrix) ;为list.j(matrix)遍历for(int j = i + 1; j list.add(matrix [j] [(n-1)-i]);遍历“ for i”。

从右边到左边+1; j1)-i> i; j ++){list.add(matrix [(m-1)-i] [(n-1)-j]);从下到上遍历“用于”(int j = i + 1; j1-i& i1)-i; j ++){list.add(matrix [(m-1)-j] [i]);无效列表静态;返回public in(String [] args){int [] []矩阵= {1、2、3、4、5、11、12、9、6、7},{16、17、18、19、20} }; int [] [] matrix2 = {{1,2,3},{4,5,6},{7,8,9},{10,11,12 ,,,,,,,,,,,,, ,,,,,,, The SpiralOrder(matrix);, Array,spiralOrder,(matrix),;数组,螺旋,阶数(矩阵); Array,Array,(),System。

,out。

,Println,(Arrays,to String ,, System。

out.println(Arrays.toString(resultList2.toArray()));}}在上面的代码中,大循环包含4个小循环,大循环控制每一层的遍历,这4个小循环分别实现同一层的上,右,下和左侧的遍历。

不会执行4个小循环,例如,测试代码中matrix2的最内层只有一列,此时,您只需要遍历“ top”和“ right”。

穿过“底部”和“左侧”的小环必须服从附加条件:(m-1)-i> i1)-i,以使相同的边缘不会重复遍历。

————————————————喜欢这篇文章的朋友们,欢迎关注官方账户程序员小慧,并观看更多精彩内容。

点击[查找],这是对小辉的最大支持!



以上内容来自于网络,不代表本公司本网站同意其观点及内容。

欢迎您的咨询

  • 中国的汽车芯片短缺可能会持续长达十年:缺乏技术知识的情况更加严重
  • 宏梦系统将配备家用智能家电,美的,九阳等将进入游戏
  • 分析温湿度传感器是否可以在大型机房中使用?
  • 三星980 PRO 1TB M.2 SSD固态驱动器Expreview存储基准评估
  • 如果我申请ETC但长时间不使用会怎样?
  • 亚马逊推出新的支付系统:与您握手以完成支付
  • 程序员连续两次有3.25的表现,而大老板扬言要解雇他,并问每个人如何捍卫自己的权利?
  • 经验教训,华为海思开始转型
  • 微信AI团队推出多场景智能助手解决方案
  • 未发布的X60系列将继续使用微头设计
  • 尼康Z 9将于明年秋天正式推出:价格预计为6000-7000美元
  • iPhone 12 mini增强版手机谍照曝光!网友:我几乎相信了
  • 工业和信息化部通报了侵犯用户权利的应用程序,并命名了腾讯应用商店和小米应用商店等平台。
  • 随着网络资费的下降,对5G的需求持续增长
  • 携手推动数字化转型,中兴通讯亮相“数字中国建设成就展”
  • 教您如何使用STM32Trust生成加密的固件
  • 香港股份公司神舟控股的智慧城市业务独立上市
  • 是德科技与罗门半导体(Rohm Semiconductor)联手支持设计师加速基于碳化硅技术的开关电源的设计
  • 华为欧洲副总裁:继续为5G服务的欧洲客户,不受美国压制的影响
  • 中国信息通信科学研究院:5G手机出货量在9月1日创下新高