首页 > 代码库 > Spiral Matrix
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 LinkedList<Integer>(); if(matrix==null||matrix.length==0||matrix[0].length==0) { return result; } int up=0; int down=matrix.length-1; int left=0; int right=matrix[0].length-1; int row=0; int col=0; while(true) { //向右 for(col=left;col<=right;col++) { result.add(matrix[row][col]); } up++; if(up>down) { break; } col--; //向下 for(row=up;row<=down;row++) { result.add(matrix[row][col]); } right--; if(left>right) { break; } row--; //向左 for(col=right;col>=left;col--) { result.add(matrix[row][col]); } down--; if(up>down) { break; } col++; //向上 for(row=down;row>=up;row--) { result.add(matrix[row][col]); } left++; if(left>right) { break; } row++; } return result; } }
Spiral Matrix
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。