网站开发 后端,专业做网站网络,瀑布流网站模板,免费网站建设自助建站题目
给你一个 m 行 n 列的矩阵 matrix #xff0c;请按照 顺时针螺旋顺序 #xff0c;返回矩阵中的所有元素。
示例 1#xff1a; 输入#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出#xff1a;[1,2,3,6,9,8,7,4,5] 示例 2#xff1a; 输入#xff1a;matrix …题目
给你一个 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.length n matrix[i].length 1 m, n 10 -100 matrix[i][j] 100 题解
class Solution {public ListInteger spiralOrder(int[][] matrix) {ListInteger order new ArrayListInteger();if (matrix null || matrix.length 0 || matrix[0].length 0) {return order;}int rows matrix.length, columns matrix[0].length;boolean[][] visited new boolean[rows][columns];int total rows * columns;int row 0, column 0;int[][] directions {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};int directionIndex 0;for (int i 0; i total; i) {order.add(matrix[row][column]);visited[row][column] true;int nextRow row directions[directionIndex][0], nextColumn column directions[directionIndex][1];if (nextRow 0 || nextRow rows || nextColumn 0 || nextColumn columns || visited[nextRow][nextColumn]) {directionIndex (directionIndex 1) % 4;}row directions[directionIndex][0];column directions[directionIndex][1];}return order;}
}
来自力扣官方题解