当前位置: 首页 > news >正文

算法第九天:leetcode59.螺旋矩阵II

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

示例 1:

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

示例 2:

输入:n = 1
输出:[[1]]

提示:

  • 1 <= n <= 20

 螺旋矩阵II的实现代码(Java)

class Solution {public int[][] generateMatrix(int n) {int i, j;int[][] nums=new int[n][n];int startX=0, startY=0; //每一圈的起始点int loop=1; //记录当前的圈数int offset=1, count=1; //矩阵中需要填写的数字while(loop<=n/2){//左闭右开//顶部for(j=startY;j<n-offset;j++){nums[startX][j]=count++;}//右列for(i=startX;i<n-offset;i++){nums[i][j]=count++;}//底部for(;j>startY;j--){nums[i][j]=count++;}//左列for(;i>startX;i--){nums[i][j]=count++;}startX++;startY++;offset++;loop++;}if(n%2==1){nums[startX][startY]=count;}return nums;}
}

具体思路

  1.while循环判断条件loop<n/2,您想了解如何得出该结论的话可看下图哦!

 2.分顶部、右列、底部和左列进行循环得出结果;

 3.判断n不为偶数的情况。

感谢各位读者的阅读与支持,您的支持是我前进的动力!我希望我的博文能够带给您有用的算法知识和启发。希望本题对大家有帮助,谢谢各位读者的支持!!!

http://www.lryc.cn/news/403007.html

相关文章:

  • androidkiller重编译apk失败的问题
  • matlab中plot的一些用法
  • Elasticsearch:Retrievers 介绍 - Python Jupyter notebook
  • 5 webSocket
  • PD芯片诱骗取电电压给后端小家电用电:LDR6328
  • 深入解析Linux文件权限管理:掌握`chmod`和`chown`命令
  • 3.Implementing Controllers
  • 如何分清楚常见的 Git 分支管理策略Git Flow、GitHub Flow 和 GitLab Flow
  • Java垃圾收集器选择与优化策略
  • django命令
  • 23种设计模式之命令模式
  • esp8266模块(1)
  • LDR6020:重塑iPad一体式有线键盘体验的创新力量
  • ArcGIS Pro SDK (九)几何 9 立方贝塞尔线段
  • c语言之 *指针与 **指针
  • navicat 导入 sql 遇到的问题
  • 压缩pdf大小的方法 指定大小软件且清晰
  • PHP上门按摩专业版防东郊到家系统源码小程序
  • 从微软发iPhone,聊聊企业设备管理
  • 抖音/腾讯/百度ocpm深度回传如何操作?广告投放双出价的投放技巧?
  • DPKG(Debian / Ubuntu包管理工具)的深入探索与使用
  • Godot学习笔记2——GDScript变量与函数
  • golang开发环境搭建与踩坑记录
  • 单机、集群、分布式服务器比较:
  • NoSql选择题解
  • 国内新能源汽车芯片自给,承认差距,任重道远
  • 反爬虫策略中的IP地址轮换如何实现?挑战与对策
  • AUTOSAR CAN网络Bus Load Reduction Mechanism
  • 【LeetCode力扣】007. 整数反转(Python)
  • 大数据之写入Doris数据问题