LeetCode_OJ【54】Spiral Matrix
2016-02-18 09:35
465 查看
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:
You should return
这道题思路很简单,但是有些边边角角要注意,特别要注意m>n和m<n时里层的循环。
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].
这道题思路很简单,但是有些边边角角要注意,特别要注意m>n和m<n时里层的循环。
public class Solution { public List<Integer> spiralOrder(int[][] matrix) { List<Integer> list = new ArrayList<Integer>(); if(matrix.length == 0) return list; for(int i = 0 ; i < (matrix.length+1) /2 && i < (matrix[0].length+1)/2 ; i++){ int flagX = 0; int flagY = 0; for(int j = i,count =0 ; j < matrix[i].length - i ; j ++){ list.add(matrix[i][j]); count ++; if(count ==2) flagX = 1; } for(int j = i +1 ; j < matrix.length - i ; j ++){ list.add(matrix[j][matrix[i].length -1 -i]); flagY = 1; } if(flagY > 0){ for(int j = matrix[i].length -i -2; j >= i ; j --) list.add(matrix[matrix.length -1 -i][j]); } if(flagX > 0){ for(int j = matrix.length -2 -i; j > i ; j--) list.add(matrix[j][i]); } } return list; } }
相关文章推荐
- C#使用Matrix执行缩放的方法
- 如何使用Matrix对bitmap的旋转与镜像水平垂直翻转
- Android中Matrix用法实例分析
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- HP Z800 Workstation - Configuring RAID devices (HP Z800 做磁盘Raid1,Raid0的阵列)
- Android Matrix类以及ColorMatrix类详解
- leetcode----Longest Substring Without Repeating Characters
- 用css实现图片的旋转
- 让舞台上的按钮btn灰掉
- Android中Bitmap和Drawable
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap