LeetCode 59 Spiral Matrix II(螺旋矩阵II)(Array)
翻译
给定一个整数n,生成一个矩阵,要求以螺旋状将1到n2的元素填进其中。
例如,给定n=3,
你应该返回以下矩阵:
[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]
]
原文
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n=3,
You should return the following matrix:
[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]
]
分析
这个上一题非常类似,54题是由外到内的取值,59题则是有由外到内的赋值,条件甚至都不用变。
LeetCode 54 Spiral Matrix(螺旋矩阵)(Array)(*)
代码
C Plus Plus
class Solution {
public:vector<vector<int> > generateMatrix(int n) {vector<vector<int> > matrix(n, vector<int>(n) );int u = 0, d = n - 1, l = 0, r = n - 1, k = 0;while (true) {// upfor (int col = l; col <= r; col++) matrix[u][col] = ++k;if (++u > d) break;// rightfor (int row = u; row <= d; row++) matrix[row][r] = ++k;if (--r < l) break;// downfor (int col = r; col >= l; col--) matrix[d][col] = ++k;if (--d < u) break;// leftfor (int row = d; row >= u; row--) matrix[row][l] = ++k;if (++l > r) break;}return matrix;
}
};
Java
updated at 2016/09/04
public int[][] generateMatrix(int n) {int[][] matrix = new int[n][n];if (n < 1) return matrix;int u = 0, d = n - 1, l = 0, r = n - 1, k = 1;while (true) {// upfor (int col = l; col <= r; col++) matrix[u][col] = k++;if (++u > d) break;// rightfor (int row = u; row <= d; row++) matrix[row][r] = k++;if (--r < l) break;// downfor (int col = r; col >= l; col--) matrix[d][col] = k++;if (--d < u) break;// leftfor (int row = d; row >= u; row--) matrix[row][l] = k++;if (++l > r) break;}return matrix;}
LeetCode 59 Spiral Matrix II(螺旋矩阵II)(Array)相关推荐
- leetcode 54. Spiral Matrix | 54. 螺旋矩阵(Java)
题目 https://leetcode.com/problems/spiral-matrix/ 题解 类似于状态机的思路,设定一个 padding,走一圈之后,padding+1 .用 长宽 - pa ...
- LeetCode 59. Spiral Matrix II
59. Spiral Matrix II Given an integer n, generate a square matrix filled with elements from 1 to n2 ...
- 代码随想录算法训练营第二天 | LeetCode 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II
目录 一.今日心得感悟 1.数组从小到大排序 ①冒泡法--时间复杂度:O(nlogn) ②使用排序函数qsort--时间复杂度:O(nlogn) ③两端->中间(双指针法) --时间复杂度:O( ...
- 代码随想录算法训练营第二天|leetcode 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
leetcode 977.有序数组的平方 想到昨天写的双指针,十分刻意用了一下,感觉还是比较生疏,还得加强练习和思考,然后发现还需要排序,想到了vector的排序sort(),但是觉得直接用不好,也忘 ...
- 代码随想录算法训练营第二天|LeetCode 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II
LeetCode 977.有序数组的平方 题目链接:977.有序数组的平方 思路: 1.先对每个数进行遍历平方,并插入新的容器中 2.对容器进行排序,返回就可以了 缺陷:开辟了新的容器空间 class ...
- 代码随想录算法训练营第二天 | LeetCode 977.有序数组的平方、LeetCode 209.长度最小的子数组、LeetCode 59.螺旋矩阵II
LeetCode 977.有序数组的平方 双指针法:数组其实是有序的, 只不过负数平方之后可能成为最大数了.那么数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间.此时可以考虑双指针法 ...
- 代码随想录算法训练营第二天 | LeetCode977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II
代码随想录算法训练营第二天 | LeetCode977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II 一. LeetCode977.有序数组的平方 1. 题目链接[LeetCode9 ...
- 随想录一期 day2 [977.有序数组的平方|209. 长度最小的子数组|59.螺旋矩阵II(剥洋葱)]
977.有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序. 思路 递增数组,平方后最大值一定在最左侧或者最右侧,可想到– ...
- 代码随想录算法训练营第二天| 977. 有序数组的平方、209. 长度最小子数组、59.螺旋矩阵II、数组总结
目录: 977.有序数组的平方 209.长度最小的子数组 1.暴力输出法 2.滑动窗口法 59.螺旋矩阵II 总结: 今日收获: 977.有序数组的平方 因为是递增且有负数的数组,那么他们的平方如果还 ...
最新文章
- 遗传算法c语言程序,遗传算法c语言代码.doc
- Grafana 6.1.3 发布,系统指标监控与分析平台
- 《Flink官方文档》示例总览
- 微信的充值页面为啥长这样?(多图)
- Word转换英文为大写小写的方法
- C++程序内存分配方式(堆与栈)
- 视音频编解码学习工程:JPEG分析器
- CXF与Web项目集成---without Spring
- linux运行雷神之锤,Ubuntu18.04下可以完美运行Quake3..
- 一个html文档的开始标记,如何在Python中只向HTML文档添加一个开始标记
- arctime工程文件怎么打开_微信dat后缀的文件怎么打开
- MDaemon替换注册码怎样人工激活.docx
- Media Session API 为当前正在播放的视频,音频,提供元数据来自定义媒体通知
- 继承(初识继承,继承的进阶)
- Linux 第12天: (08月19日) 练习和作业
- 鲸探发布点评:8月22日发售《孔子圣迹图》系列数字藏品
- ArcGIS——地理配准操作
- ECHARTS的基本使用:柱状图、折线图、饼图等
- 智云通CRM:如何与客户建立信任关系?
- java图形打字机_Android模仿打字机效果的自定义View实现
热门文章
- sublime python3 输入换行不结束
- 使用 EthPM 包管理工具
- 深入浅出计算机组成原理学习笔记:局部性原理-数据库性能跟不上,加个缓存就好了(第36讲)...
- 20175330 数据结构-单链表(选做)
- kalinux实现自适用全屏、与物理主机共享文件方法
- spring boot自动配置
- 变量可以通过into赋值
- for循环console输出结果的问题
- vijos 1448 校门外的树 树状数组
- (笔记) (ARM) QQ2440 开发板改为 GT2440 (Linux) (开发板)