本文共 1136 字,大约阅读时间需要 3 分钟。
Spiral Matrix
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 ListspiralOrder(int[][] matrix) { List result = new ArrayList (); if(matrix.length ==0) return result; int n = matrix.length; int m = matrix[0].length; if (1 == n) { for (int i = 0; i < m; i++) result.add(matrix[0][i]); return result; } if (1 == m) { for (int i = 0; i < n; i++) result.add(matrix[i][0]); return result; } for (int i = 0; i < m; i++) result.add(matrix[0][i]); for (int i = 1; i < n; i++) result.add(matrix[i][m - 1]); for (int i = m - 2; i >= 0; i--) result.add(matrix[n - 1][i]); for (int i = n - 2; i > 0; i--) result.add(matrix[i][0]); n = n - 2; m = m - 2; if(n>0 && m>0){ int[][] matrix_new = new int [n][m]; for(int i=0;i result_inner = spiralOrder(matrix_new); result.addAll(result_inner); } return result; }}
转载地址:http://jvuni.baihongyu.com/