版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/52145440

翻译

给定一个整数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)相关推荐

  1. leetcode 54. Spiral Matrix | 54. 螺旋矩阵(Java)

    题目 https://leetcode.com/problems/spiral-matrix/ 题解 类似于状态机的思路,设定一个 padding,走一圈之后,padding+1 .用 长宽 - pa ...

  2. LeetCode 59. Spiral Matrix II

    59. Spiral Matrix II Given an integer n, generate a square matrix filled with elements from 1 to n2 ...

  3. 代码随想录算法训练营第二天 | LeetCode 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II

    目录 一.今日心得感悟 1.数组从小到大排序 ①冒泡法--时间复杂度:O(nlogn) ②使用排序函数qsort--时间复杂度:O(nlogn) ③两端->中间(双指针法) --时间复杂度:O( ...

  4. 代码随想录算法训练营第二天|leetcode 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

    leetcode 977.有序数组的平方 想到昨天写的双指针,十分刻意用了一下,感觉还是比较生疏,还得加强练习和思考,然后发现还需要排序,想到了vector的排序sort(),但是觉得直接用不好,也忘 ...

  5. 代码随想录算法训练营第二天|LeetCode 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II

    LeetCode 977.有序数组的平方 题目链接:977.有序数组的平方 思路: 1.先对每个数进行遍历平方,并插入新的容器中 2.对容器进行排序,返回就可以了 缺陷:开辟了新的容器空间 class ...

  6. 代码随想录算法训练营第二天 | LeetCode 977.有序数组的平方、​LeetCode 209.长度最小的子数组、LeetCode 59.螺旋矩阵II

    LeetCode 977.有序数组的平方 双指针法:数组其实是有序的, 只不过负数平方之后可能成为最大数了.那么数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间.此时可以考虑双指针法 ...

  7. 代码随想录算法训练营第二天 | LeetCode977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II

    代码随想录算法训练营第二天 | LeetCode977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II 一. LeetCode977.有序数组的平方 1. 题目链接[LeetCode9 ...

  8. 随想录一期 day2 [977.有序数组的平方|209. 长度最小的子数组|59.螺旋矩阵II(剥洋葱)]

    977.有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序. 思路 递增数组,平方后最大值一定在最左侧或者最右侧,可想到– ...

  9. 代码随想录算法训练营第二天| 977. 有序数组的平方、209. 长度最小子数组、59.螺旋矩阵II、数组总结

    目录: 977.有序数组的平方 209.长度最小的子数组 1.暴力输出法 2.滑动窗口法 59.螺旋矩阵II 总结: 今日收获: 977.有序数组的平方 因为是递增且有负数的数组,那么他们的平方如果还 ...

最新文章

  1. 遗传算法c语言程序,遗传算法c语言代码.doc
  2. Grafana 6.1.3 发布,系统指标监控与分析平台
  3. 《Flink官方文档》示例总览
  4. 微信的充值页面为啥长这样?(多图)
  5. Word转换英文为大写小写的方法
  6. C++程序内存分配方式(堆与栈)
  7. 视音频编解码学习工程:JPEG分析器
  8. CXF与Web项目集成---without Spring
  9. linux运行雷神之锤,Ubuntu18.04下可以完美运行Quake3..
  10. 一个html文档的开始标记,如何在Python中只向HTML文档添加一个开始标记
  11. arctime工程文件怎么打开_微信dat后缀的文件怎么打开
  12. MDaemon替换注册码怎样人工激活.docx
  13. Media Session API 为当前正在播放的视频,音频,提供元数据来自定义媒体通知
  14. 继承(初识继承,继承的进阶)
  15. Linux 第12天: (08月19日) 练习和作业
  16. 鲸探发布点评:8月22日发售《孔子圣迹图》系列数字藏品
  17. ArcGIS——地理配准操作
  18. ECHARTS的基本使用:柱状图、折线图、饼图等
  19. 智云通CRM:如何与客户建立信任关系?
  20. java图形打字机_Android模仿打字机效果的自定义View实现

热门文章

  1. sublime python3 输入换行不结束
  2. 使用 EthPM 包管理工具
  3. 深入浅出计算机组成原理学习笔记:局部性原理-数据库性能跟不上,加个缓存就好了(第36讲)...
  4. 20175330 数据结构-单链表(选做)
  5. kalinux实现自适用全屏、与物理主机共享文件方法
  6. spring boot自动配置
  7. 变量可以通过into赋值
  8. for循环console输出结果的问题
  9. vijos 1448 校门外的树 树状数组
  10. (笔记) (ARM) QQ2440 开发板改为 GT2440 (Linux) (开发板)