兰州网站建设优化推广,深圳建筑工程网,如何建设视频网站,智能建站与正常的网站提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣59. 螺旋矩阵 II二、力扣54. 螺旋矩阵 前言 相信大家有遇到过这种情况#xff1a; 感觉题目的边界调节超多#xff0c;一波接着一波的判断#xff0… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 前言一、力扣59. 螺旋矩阵 II二、力扣54. 螺旋矩阵 前言 相信大家有遇到过这种情况 感觉题目的边界调节超多一波接着一波的判断找边界拆了东墙补西墙好不容易运行通过了代码写的十分冗余毫无章法其实真正解决题目的代码都是简洁的或者有原则性的大家可以在这道题目中体会到这一点
一、力扣59. 螺旋矩阵 II
class Solution {public int[][] generateMatrix(int n) {int[][] res new int[n][n];for(int a 1,L 0, R n-1, U 0, D n-1; a n * n; ){for(int i L; i R; i ){res[U][i] a ;}U ;for(int i U; i D; i ){res[i][R] a ;}R --;for(int i R; i L; i --){res[D][i] a ;}D --;for(int i D; i U; i --){res[i][L] a ;}L ;}return res;}
}二、力扣54. 螺旋矩阵
class Solution {public ListInteger spiralOrder(int[][] matrix) {int m matrix.length;int n matrix[0].length;ListInteger res new LinkedList();for(int L 0, R n-1, U 0, D m-1, a 1; a m * n; ){for(int i L; i R a m * n; i ){res.add(matrix[U][i]);a ;}U ;for(int i U; i D a m * n; i ){res.add(matrix[i][R]);a ;}R --;for(int i R; i L a m * n; i --){res.add(matrix[D][i]);a ;}D --;for(int i D; i U a m * n; i --){res.add(matrix[i][L]);a ;}L ;}return res;}
}