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

解题思路:

螺旋阵列,使用up down left right 四个指针标记上下左右的位置即可,JAVA实现如下:

static public List<Integer> spiralOrder(int[][] matrix) {
List<Integer> list = new ArrayList<Integer>();
if (matrix.length == 0 || matrix[0].length == 0)
return list;
int left = 0, right = matrix[0].length - 1, up = 0, down = matrix.length - 1;
while (left <= right && up <= down) {
for (int i = left; i <= right&&up<=down; i++)
list.add(matrix[up][i]);
up++;
for (int i = up; i <= down&&left<=right; i++)
list.add(matrix[i][right]);
right--;
for (int i = right; i >= left&&up<=down; i--)
list.add(matrix[down][i]);
down--;
for (int i = down; i >= up&&left<=right; i--)
list.add(matrix[i][left]);
left++;
}
return list;
}

最新文章

  1. linux用户权限相关内容查看
  2. myeclipse配置maven
  3. Linux系统编程:基本I/O系统调用
  4. 远程桌面连接不上|windows server 2003 sp2 termdd.sys(转载)
  5. 【TYVJ】1467 - 通向聚会的道路(spfa+特殊的技巧)
  6. Xib的使用与File&#39;Owner总结
  7. Docker基础技术:DeviceMapper
  8. spring mvc 国际化
  9. ubuntu下安装使用vmware、kvm、xen
  10. Codeforces Beta Round #51 D. Beautiful numbers 数位dp
  11. percona-toolkit -1
  12. 通过 Azure Media Encoder 降低编码成本
  13. 如何下载到最新的版本的Oracle Database
  14. iptables规则进阶
  15. Tomcat部署项目乱码问题总结
  16. 怪事年年有,今天特别多!org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter &#39;empno&#39; not found. Available parameters are [emp, deptno, param1, param
  17. Binwalk的安装和使用
  18. SQLServer数据库维护(一)碎片检查整理
  19. jmeter学习笔记--概述
  20. 【读书笔记】iOS-使用GCD改善性能

热门文章

  1. 【ZOJ 1221】Risk
  2. BZOJ-1968 COMMON 约数研究 数论+奇怪的姿势
  3. BZOJ-1433 假期的宿舍 最大流+基础建图
  4. NOI2002 洛谷 P1196 银河英雄传说
  5. java的static块执行时机
  6. thinkphp开发规范
  7. tableView左滑删除功能
  8. android源代码提示文本框还能输入多少个字符
  9. myBatis 实现用户表增操作(复杂型)
  10. Android内核开发:系统启动速度优化-Android OS启动优化(转)