商丘网站建设哪家好,jsp网站开发,做网站目录,威海推广提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 前言
提示#xff1a;这里可以添加本文要记录的大概内容#xff1a;
4月9日练习内容 提示#xff1a;以下是本篇文章正文内容#xff0c;下面案例可供参考
一、题目-螺… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 前言
提示这里可以添加本文要记录的大概内容
4月9日练习内容 提示以下是本篇文章正文内容下面案例可供参考
一、题目-螺旋矩阵
1.题目描述
给你一个 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] 来源力扣LeetCode 链接https://leetcode.cn/problems/spiral-matrix 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2.思路与代码
2.1 思路
1.边界条件判断判断数组是否为空或者数组长度是否为0
2.遍历矩阵先从上面行开始从左往右打印行不变改变列的下标。
3.右边列从上往下打印列不变改变行的下标。
4下面行从右往左打印行不变改变列的下标
5左边列从下往上打印列不变改变行的下标。
6。最后输出即可
2.2 代码
class Solution {public ListInteger spiralOrder(int[][] matrix) {ListInteger res new ArrayList();//边界条件判断if (matrix null || matrix.length 0){return res;}int m matrix.length; //行int n matrix[0].length; //列int up 0, down m - 1, left 0, right n - 1;while (true) {// 上面行从左往右打印行不变改变列的下标for (int col left; col right; col){res.add(matrix[up][col]);}if (up down){break;}// 右边列从上往下打印列不变改变行的下标for (int row up; row down; row){res.add(matrix[row][right]);} if (--right left){break;} // 下面行从右往左打印行不变改变列的下标for (int col right; col left; col--){res.add(matrix[down][col]);}if (--down up){break;}// 左边列从下往上打印列不变改变行的下标for (int row down; row up; row--){res.add(matrix[row][left]);} if (left right){break;}}return res;}
} 总结
提示这里对文章进行总结