LeetCode刷题【Array】 Spiral Matrix

来源:互联网 发布:女朋友胸小体验知乎 编辑:程序博客网 时间:2024/06/15 22:40

题目:

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].

解决方法一:Runtime: 2 ms

public class Solution {    public List<Integer> spiralOrder(int[][] matrix) {        if(null==matrix||matrix.length<=0) return new ArrayList<Integer>();int x1=0,y1=0;int x2=matrix.length-1,y2=matrix[matrix.length-1].length-1;List<Integer> ret = new ArrayList<Integer>();while(x1<=x2&&y1<=y2){for(int i=x1,j=y1;j<=y2;j++) ret.add(matrix[i][j]);  // left to rightfor(int i=x1+1,j=y2;i<=x2;i++) ret.add(matrix[i][j]);  // right up to right downfor(int i=x2,j=y2-1;i>x1&&j>=y1;j--) ret.add(matrix[i][j]);  // right to leftfor(int i=x2-1,j=y1;i>x1&&j<y2;i--) ret.add(matrix[i][j]);  // left down to left upx1++;y1++;x2--;y2--;}return ret;    }}
参考:

【1】https://leetcode.com/




0 0
原创粉丝点击