作者 | 小灰
来源 | 程序员小灰(ID:chengxuyuanxiaohui)
第二天
什么意思呢?我们来举个例子,给定下面这样一个二维数组:
我们需要从左上角的元素1开始,按照顺时针进行螺旋遍历,一直遍历完所有的元素,遍历的路径就像下图一样:
经过这样的遍历,返回的元素结果如下:
1,2,3,4,5,10,15,20,19,18,17,16,11,6,7,8,9,14,13,12
回公司后
第1层
从左到右遍历“上边”:
从上到下遍历“右边”:
从右到左遍历“下边”:
从下到上遍历“左边”:
第2层
从左到右遍历“上边”:
从上到下遍历“右边”:
从右到左遍历“下边”:
从下到上遍历“左边”:
第3层
从左到右遍历“上边”:
从上到下遍历“右边”:
从右到左遍历“下边”:
第三层的“左边”已无需遍历,二维数组到此遍历完毕。
public class SpiralOrder {
public static List spiralOrder(int[][] matrix) {
List list = new ArrayList();
//当二维数组是空或任何一个维度是0,直接返回
if (matrix == null || matrix.length == 0 || matrix[0].length == 0) {
return list;
}
//m是矩阵的行数
int m = matrix.length;
//n是矩阵的列数
int n = matrix[0].length;
//大循环,从外向内逐层遍历矩阵
for(int i=0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?
立即登录/注册


微信扫码登录