[LeetCode] Spiral Matrix
来源:互联网 发布:java图形用户界面实例 编辑:程序博客网 时间:2024/04/29 12:04
Total Accepted: 7416 Total Submissions: 36640
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 ArrayList<Integer> spiralOrder(int[][] matrix) { ArrayList<Integer> list = new ArrayList<Integer>(); int m = matrix.length; if (m == 0) return list; int n = matrix[0].length; int level = n > m ? (m + 1) >> 1 : (n + 1) >> 1; // iterate through each layer // 1,2 3,6 9,8 7,4 (nxn && n > 1) for (int iter = 0; iter < level; iter++) { if ((m - 2 * iter) == 1) { for (int i = iter; i < n - iter; i++) list.add(matrix[iter][i]); } else if ((n - 2*iter) == 1) { for (int i = iter; i < m -iter; i++) list.add(matrix[i][iter]); } else { for (int i = iter; i < n - 1 - iter; i++) list.add(matrix[iter][i]); for (int i = iter; i < m - 1 - iter; i++) list.add(matrix[i][n - 1 - iter]); for (int i = n - 1 - iter; i > iter; i--) list.add(matrix[m - 1 - iter][i]); for (int i = m - 1 - iter; i > iter; i--) list.add(matrix[i][iter]); } } return list; }}
public class Solution { public ArrayList<Integer> spiralOrder(int[][] matrix) { ArrayList<Integer> list = new ArrayList<Integer>(); int m = matrix.length; if (m == 0) return list; int n = matrix[0].length; int xlo = 0, ylo = 0, xhi = n - 1, yhi = m -1; while (xlo <= xhi && ylo <= yhi) { for (int i = xlo; i <= xhi; i++) list.add(matrix[ylo][i]); for (int i = ylo + 1; i <= yhi; i++) list.add(matrix[i][xhi]); if (ylo != yhi) for (int i = xhi - 1; i >= xlo; i--) list.add(matrix[yhi][i]); if (xlo != xhi) for (int i = yhi - 1; i > ylo; i--) list.add(matrix[i][xlo]); xlo++; xhi--; ylo++; yhi--; } return list; }}
0 0
- [leetcode]Spiral Matrix&&Spiral Matrix II
- Leetcode:Spiral Matrix与Spiral Matrix II
- LeetCode | Spiral Matrix /Spiral Matrix II
- 【Leetcode】【python】Spiral Matrix/Spiral Matrix II
- LeetCode: Spiral Matrix
- LeetCode: Spiral Matrix II
- LeetCode Spiral Matrix
- LeetCode Spiral Matrix II
- [Leetcode] Spiral Matrix
- [Leetcode] Spiral Matrix II
- LeetCode: Spiral Matrix
- LeetCode : Spiral Matrix II
- [LeetCode] Spiral Matrix II
- [LeetCode] Spiral Matrix
- leetcode 80: Spiral Matrix
- [Leetcode] Spiral Matrix
- [LeetCode]Spiral Matrix
- [LeetCode]Spiral Matrix II
- FizzBuzzWhizz
- mysql 安装出现 Install/Remove of the Service Denied!错误
- 因為落葉,懂得了珍惜
- 创业失败的七个原因及解决之道
- 1Z0-051 QUESTION 9 关于INTERSECT的用法
- [LeetCode] Spiral Matrix
- 提升磁盘IO性能的几个技巧
- ios数组基本用法和排序
- 做好微信营销方案的重要性
- Eclipse自动生成注释,修改注释模板
- 为什么找不到对象,除了丑还有别的原因吗?
- Notepad++ 常用快捷键 (备忘)
- ibatis 一条信息要用到两张表里面的数据 ibatis怎么配置?
- ios--UINavigationController详细介绍