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的更多相关文章
随机推荐
- 小型数据库性能对比(对比了SQLite、FireBird、FastDB、SQLServer2000绿色版、Access、BDB、PostgreSQL)
一.全面对比 SQLite.FireBird.FastDB.SQLServer2000绿色版.Access.BDB.PostgreSQL对比结果如下: 二.国产数据库 三.SQLite 与Postgr ...
- Ubuntu 18.04 安装 pip3
Ubuntu 18.04 默认安装了 python2.x 和 python3.x:默认情况下 python 指的是 python2.x,如果要使用 python3.x 需要使用 python3,如: ...
- git光速入门
git的使用和讲解 版本控制 说到版本控制,脑海里总会浮现大学毕业是写毕业论文的场景,你电脑上的毕业论文一定出现过这番景象! 1 2 3 4 5 6 7 8 9 10 11 毕业论文_初稿.doc ...
- Java连载52-单例模式的缺点以及抽象类
一.单例模式 1.单例模式的缺点:单例模式的类型没有子类,无法被继承. 例如:下面的例子,由于父类的构造方法是私有的,所以子类中的构造方法是无法创建的,因为它是引用父类的构造方法 package co ...
- python做中学(二)bool()函数的用法
定义: bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False. bool 是 int 的子类. 语法: 以下是 bool() 方法的语法: class bool([x] 参数 ...
- 《细说PHP》第四版 样章 第18章 数据库抽象层PDO 5
18.5 使用PDO对象 PDO扩展类库为PHP访问数据库定义了一个轻量级.一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据,大大简化了数据 ...
- njnja 安装
git clone git://github.com/ninja-build/ninja.git && cd ninja 安装re2c wget https://kojipkgs.f ...
- Linux常见命令之权限管理命令
chmod命令 chmod命令用来变更文件或目录的权限.在UNIX系统家族里,文件或目录权限的控制分别以读取.写入.执行3种一般权限来区分,另有3种特殊权限可供运用.用户可以使用chmod指令去变更文 ...
- Idea导出jar包运行报错:找不到主清单属性解决方法
解决方法 1.打开项目结构 2.创建一个Artifact 3.设置 我这里使用的maven,所以有resources文件夹 4.创建lib文件夹 右键output diretory,选择创建文件夹,名 ...
- Java内存模型以及happens-before规则
本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...