尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

【矩阵】【中等】螺旋矩阵

【矩阵】【中等】螺旋矩阵 题目给你一个 m 行 n 列的矩阵 matrix 请按照 顺时针螺旋顺序 返回矩阵中的所有元素。示例 1输入matrix [[1,2,3],[4,5,6],[7,8,9]]输出[1,2,3,6,9,8,7,4,5]示例 2输入matrix [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出[1,2,3,4,8,12,11,10,9,5,6,7]提示m matrix.lengthn matrix[i].length1 m, n 10-100 matrix[i][j] 100四个边界值定义四个边界如下图所示走完一圈之后四个边界同时向里面缩。当updown或者leftright的时候说明螺旋结束。up0↓ left →1234← right56789101112↑ down2publicstaticListIntegerspiralOrder(int[][]matrix){ListIntegerlistnewArrayList();intup0;intdownmatrix.length-1;intleft0;intrightmatrix[0].length-1;while(true){for(intileft;iright;i){list.add(matrix[up][i]);}up;if(updown){break;}for(intiup;idown;i){list.add(matrix[i][right]);}right--;if(rightleft){break;}for(intiright;ileft;i--){list.add(matrix[down][i]);}down--;if(updown){break;}for(intidown;iup;i--){list.add(matrix[i][left]);}left;if(rightleft){break;}}returnlist;}注意每一次边界值变动都要判别否则可能导致下一步添加新的数字updown已经可以跳出但是 left 和 right 还会在添加数字
返回列表