标签:class blog code java for leetcode
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.
For example,
Given the following matrix:
[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ]
You should return [1,2,3,6,9,8,7,4,5]
.
public class Solution { public List<Integer> spiralOrder(int[][] matrix) { List<Integer> result = new ArrayList<Integer>(); int row = matrix.length; if(row > 0){ int column = matrix[0].length; int min = Math.min(row, column); for(int i = 0; i < min / 2; ++i){ for(int k = i; k < column - i; ++k) result.add(matrix[i][k]); for(int k = (i + 1); k < row -(i + 1); ++k) result.add(matrix[k][column - 1 - i]); for(int k = i; k < column - i; ++k) result.add(matrix[row - 1 - i][column - 1 - k]); for(int k = i + 1; k < row - (i + 1); ++k) result.add(matrix[row - 1 - k][i]); } //exceptional cases: if(row % 2 != 0 && column != 1){ for(int k = min / 2; k < column - min / 2; ++k) result.add(matrix[min / 2][k]); } else{ if(column % 2 != 0){ for(int k = min / 2; k < row - min / 2; ++k) result.add(matrix[k][min / 2]); } } } return result; } }
leetcode--Spiral Matrix,布布扣,bubuko.com
标签:class blog code java for leetcode
原文地址:http://www.cnblogs.com/averillzheng/p/3790269.html