码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 54. Spiral Matrix

时间:2016-06-05 12:20:51      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

不定期更新leetcode解题java答案。

采用pick one的方式选择题目。

题目的大致意思是绕圈输出矩阵数值,将每一圈视为一个循环,对输出停止的4种条件进行判断即可。

4种停止的方式分别为,向右继续输出时,数值已输出;向下继续输出时,数值已输出;向左继续输出时,数值已输出;向上继续输出时,数值已输出。

将具体数值临界值判断清楚即可,代码如下:

 1 public class Solution {
 2     public List<Integer> spiralOrder(int[][] matrix) {
 3         List<Integer> result = new ArrayList<Integer>();
 4         if(matrix.length == 0)
 5             return result;
 6         int start_x = 0, start_y = 0, end_x = matrix[0].length, end_y = matrix.length;
 7         while(start_x < end_x){
 8             //right
 9             for(int i = start_x; i < end_x; i++)
10                 result.add(matrix[start_y][i]);
11                 
12             //down
13             if(end_y - start_y == 1)
14                 break;
15             for(int i = start_y + 1; i < end_y; i++)
16                 result.add(matrix[i][end_x - 1]);
17             
18             //left
19             if(end_x - start_x == 1)
20                 break;
21             for(int i = --end_x - 1; i >= start_x; i--)
22                 result.add(matrix[end_y - 1][i]);
23             
24             //up
25             if(end_y - start_y == 2)
26                 break;
27             for(int i = --end_y - 1; i > start_y; i--)
28                 result.add(matrix[i][start_x]);
29             start_x++;
30             start_y++;
31         }
32         return result;
33     }
34 }

 

Leetcode 54. Spiral Matrix

标签:

原文地址:http://www.cnblogs.com/zslhq/p/5560347.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!