• 题目:
    给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

    输入:n = 3
    输出:[[1,2,3],[8,9,4],[7,6,5]]

  • 思路主要参考了代码随想录,自己复现了一遍

思路: 为保持循环不变量,循环中均采用左包右闭的结构即【)。
1 loop记录可以循环次数,n/2即为填充的圈数
2 mid记录中间值,当为奇数时,最后需要给mid额外赋值
3 startx记录纵向填充的起始位置
4 starty记录横向填充的起始位置
5 off记录填充循环中的减少量
6 循环从左到右一个个填充,再从下到上,再从右到左,再从下到上完成一圈;具体看代码注解!

class Solution {public int[][] generateMatrix(int n) {int[][] res = new  int[n][n];int startx = 0;int starty = 0;int mid = n / 2;int loop = n / 2;int count = 1;int off = 1;int i, j;while (loop > 0) {i = startx;j = starty;for (; j < starty + n - off; j++) { //从左往右,填充(starty+n-off)次 res[startx][j] = count++;}for (; i < startx + n - off; i++) { //从上往下,填充(startx+n-x)次res[i][j] = count++ ;}for (; j > starty; j--) { //从右往左,填充(j-starty)次res[i][j] = count++;}for (; i > startx; i--) { //从下往上,填充(i-startx)次res[i][j] = count++;}loop --; //圈数减一startx ++;starty ++;off += 2; //每填充完一圈,单列填充减少2次!}if (n % 2 == 1) { //奇数额外填充数字res [mid][mid] = count;}return res;   }
}

Leetcode 题解-59题相关推荐

  1. leetcode 题解 (500-1000题,持续更新,part 2)

    part1(1-500), part3(1000-*) 502. IPO 题意:给定k,w,profits数组和capital数组.k表示最多可完成的任务数.w是初始资本.profits是各个任务的收 ...

  2. 螺旋方阵(Leetcode第59题)

    问题描述:螺旋矩阵 #include <stdio.h> #include <memory.h> int main(){int n;scanf("%d",& ...

  3. 【LeetCode第59题】长舒一口气,终于学会了这苦涩难懂的 螺旋矩阵II

  4. LeetCode 每日一题 42. 接雨水 详细多种题解 C++描述

    LeetCode 每日一题 42. 接雨水 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,一起加油吧~ 难度 困难 2020.04.04每日一题 ...

  5. leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用

    leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...

  6. 【Leetcode】 刷题之路1(python)

    leetcode 刷题之路1(python) 看到有大佬总结了一些相关题目,想着先刷一类. 1.两数之和 15.三数之和 16.最接近的三数之和 11.盛最多的水 18.四数之和 454.四数相加II ...

  7. PHP版Leetcode题解开始随缘更新

    2019独角兽企业重金招聘Python工程师标准>>> PHP版Leetcode题解 我叫skys215,是一名bug工程师. 我接触编程的时间比较早,但是因为我数学不好加上比较懒, ...

  8. [剑指offer]面试题第[57]题[Leetcode][第167题][JAVA][和为s的两个数字][两数之和][HashSet][二分][双指针]

    [剑指offer]面试题第[57]题[Leetcode][第167题][第1题] 有序无序之分 题目输出不同之分 以下解法按照[剑指offer]面试题第[57]题进行题解 [问题描述][简单] 输入一 ...

  9. 设计链表(Leetcode第707题)

    此题涵盖了链表的常见操作,是练习链表操作非常好的一道题目 此题涵盖了链表的常见操作,是练习链表操作非常好的一道题目 此题涵盖了链表的常见操作,是练习链表操作非常好的一道题目 题目描述: 设计链表的实现 ...

最新文章

  1. 原创:去繁存简,回归本源:微信小程序公开课信息分析《一》
  2. 微博鸿蒙测试版,不久前华为宣布,将会在6月2日举... - @姬永锋 的微博精选 - 微博国际站...
  3. 【CVPR2020-中科院计算所】多模态GNN:在视觉信息和场景文字上联合推理
  4. 据说电脑上可以刷朋友圈啦!又多了个上班摸鱼的途径?
  5. python正则表达式模块_Python正则表达式函数模块
  6. win7系统下升级IE11
  7. Nginx中gzip_static使用测试
  8. servlet版本及容器和Java版本
  9. 甲醛、苯、甲苯、二甲苯对人体健康的危害
  10. docker 导出堆栈信息.hprof_JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用...
  11. Mysql 5.6 在性能、可伸缩性、可用性方面的新突破二
  12. android手机速度太慢,如果我的Android手机速度变慢该怎么办?加快手机速度的五种方法...
  13. python 大数据入门教程
  14. 《转》《七年之前与七年之后》
  15. html微博系统前端论文,微博平台设计与实现(毕业论文).doc
  16. local variable ‘x‘ referenced before assignment错误
  17. 详解FPGA实现8b10b编码原理(含VHDL及verilog源码)
  18. 一文带你看懂微信小程序费率怎么收
  19. 【毒鸡汤】英译毒鸡汤——人生已经如此艰难,何不落井下石
  20. 中华上下五千年演变图

热门文章

  1. SecureCRT 乱码问题
  2. 第三次工业革命(四)
  3. STL容器的并集(set_union)、交集(set_intersection)和差集(set_difference)函数的使用
  4. 转【JMeter】--JMeter下载及使用
  5. Android百度地图短链分享的使用
  6. 机器学习:性能度量指标之查准率和查全率
  7. 错排问题(排列组合习题)
  8. win10生成https证书步骤
  9. Gram矩阵及其实际含义
  10. AD账号导入--dsadd user