首页 > 代码库 > leetcode--Spiral Matrix
leetcode--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 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; }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。