Spiral Matrix

来源:互联网 发布:诱导交友app源码 编辑:程序博客网 时间:2024/06/07 07:49
public class Solution {    public List<Integer> spiralOrder(int[][] matrix) {        List<Integer> result = new ArrayList<Integer>();        if (matrix == null || matrix.length < 1 || matrix[0].length < 1) {            return result;        }        int row = matrix.length;        int col = matrix[0].length;        int r = row;        int c = col;        int level = 0;        while (r > 0 && c > 0) {            if (r == 1) {                for (int j = level; j < col - level; j++) {                    result.add(matrix[level][j]);                }                break;            }            if (c == 1) {                for (int i = level; i < row - level; i++) {                    result.add(matrix[i][level]);                }                break;            }            for (int j = level; j < col - level - 1; j++) {                result.add(matrix[level][j]);            }            for (int i = level; i < row - level - 1; i++) {                result.add(matrix[i][col - level - 1]);            }            for (int j = col - level - 1; j > level; j--) {                result.add(matrix[row - level - 1][j]);            }            for (int i = row - level - 1; i > level; i--) {                result.add(matrix[i][level]);            }            c -= 2;            r -= 2;            level++;        }        return result;    }}

0 0