[LeetCode]54. Spiral Matrix

来源:互联网 发布:unity3d 麻将开发 编辑:程序博客网 时间:2024/06/16 22:06

https://leetcode.com/problems/spiral-matrix/?tab=Description

旋转遍历二维数组




数组可能是[[1,2]]这种case,所以要保证rowBeg <= rowEnd && colBeg <= colEnd

public class Solution {    public List<Integer> spiralOrder(int[][] matrix) {                List<Integer> res = new ArrayList<Integer>();                if (matrix.length == 0) {            return res;        }                int rowBegin = 0;        int rowEnd = matrix.length-1;        int colBegin = 0;        int colEnd = matrix[0].length - 1;                while (rowBegin <= rowEnd && colBegin <= colEnd) {            // Traverse Right            for (int j = colBegin; j <= colEnd; j ++) {                res.add(matrix[rowBegin][j]);            }            rowBegin++;                        // Traverse Down            for (int j = rowBegin; j <= rowEnd; j ++) {                res.add(matrix[j][colEnd]);            }            colEnd--;                        if (rowBegin <= rowEnd) {                // Traverse Left                for (int j = colEnd; j >= colBegin; j --) {                    res.add(matrix[rowEnd][j]);                }            }            rowEnd--;                        if (colBegin <= colEnd) {                // Traver Up                for (int j = rowEnd; j >= rowBegin; j --) {                    res.add(matrix[j][colBegin]);                }            }            colBegin ++;        }                return res;    }}




0 0