Leetcode53_Spiral_Matrix
Spiral_Matrix
https://leetcode-cn.com/problems/spiral-matrix/
//当行数只有一行:
1、 n = 1;
m -> 0; //当列数只有一列
2、m = 1;
n -> 0; //行数为 n, 列数为m
3、 。。。。。。
。。。。。。
。。。。。。
。。。。。。
1) 第一次
x, y
y = 0; x : 0 -> m-1;
x = m-1; y : 0 -> n-1;
y = n-1; x : m -> 0;
x = 0; y : n -> 1 2) 第二次
y = 1; x : 0 -> m -2;
x = m-2; y : 1 -> n - 2;
y = n -2; x:m -1 -> 1;
x = m-2; y : n-1 -> 2 ...以此类推
代码
class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
ArrayList<Integer> list = new ArrayList<Integer>();
if (matrix == null || matrix.length == 0) {
return null;
}
int n = matrix[0].length;
int m = matrix.length;
int x = 0, y = 0;
int i, j;
while (n > 0 && m > 0) {
if (n == 1) {
for (int k = 0; k < m; k++) {
list.add(matrix[k][0]);
}
return list;
}
if (m == 1) {
for (int k = 0; k < n; k++) {
list.add(matrix[0][k]);
}
return list;
}
i = x;
j = y;
for (; i < n; i++) {
list.add(matrix[j][i]);
}
i --;
j ++;
for (; j < m; j++) {
list.add(matrix[j][i]);
}
i --;
j --;
for(; i >= x ; i--) {
list.add(matrix[j][i]);
}
j--;
i++;
for(; j >= y + 1; j--) {
list.add(matrix[j][i]);
}
x++;
y++;
m--;
n--;
}
return list;
}
}
Leetcode53_Spiral_Matrix的更多相关文章
随机推荐
- rasa结合kashgari训练数据时,out of memory错误
这两天新搬办公室,网络不好用,将就了.博客园也上不了,github也上不了了,工作效率降低不少.今天遇到同事使用rasa用机器人项目的问题,一个4核的Tesla K80 GPU,性能照说不差,但一运行 ...
- 史上最详细配置HTTPS
HTTP(超文本传输协议),是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准.设计HTTP的初衷是为 ...
- Python程序中的协程操作-greenlet模块
目录 一.安装模块 二.greenlet实现状态切换 三.效率对比 一.安装模块 安装:pip3 install greenlet 二.greenlet实现状态切换 from greenlet imp ...
- 阿里Nacos初体验
Nacos 从开源到现在已经18个releases了,更新很快,社区也很活跃,光钉钉群的人数那也是好多,每次点个查看全部成员的按钮,我的钉钉就要卡死,也有可能我没更新最新的版本. 前面写了一段时间的S ...
- 【Notepad++】notepad++主题和字体设置(非常好看舒服的)
#效果图 1.字体:Courier New 字号:14号字体 2.字体:Consolas 字号:14号字体 #设置方法 1.设置---语言格式设置 2.选择主题,同时勾选“使用全局字体”“使用全局字体 ...
- Jenkins—Master/Slave模式
Jenkins可部署在windows或者linux平台上,项目系统的用户多数为windows系统.如果Jenkins部署在linux上,而自动化任务要在windows平台执行,那么就需要使用Jenki ...
- Java设计模式:Abstract Factory(抽象工厂)模式
概念定义 抽象工厂(Abstract Factory)模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 抽象工厂模式中,系统的产品有多于一个的产品族(一个产品族里定义多个产品) ...
- 如何在GibHub上传自己的项目
如何上传项目至GinHub 准备好项目.在项目ssm-crud的目录下右击,点击Git Bash Here,打开git命令行. 在命令行中,输入git init,使项目文件夹加入git管理: 输入gi ...
- Linux网络——修改配置文件
Linux网络——修改配置文件 摘要:本文主要学习了如何通过修改配置文件来设置网络参数. 配置文件 通过修改系统的配置文件为系统设置网络参数,这种方式的优点是可以永久保存,计算机重启后仍然生效.缺点是 ...
- 敏捷软件开发_设计原则<三>
敏捷软件开发_设计原则 单一职责原则(single responsibilities principle,SRP) 原理:一个类应该只有一个变化 分离职责:如果不耦合的职责那么很简单,如果两个职责耦合 ...