当前位置:网站首页>力扣59-螺旋矩阵 II——边界判断
力扣59-螺旋矩阵 II——边界判断
2022-08-03 20:03:00 【张怼怼√】
题目描述
给你一个正整数 n
,生成一个包含 1
到 n2
所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
。
解题思路
- 我们可以新建一个n*n的空矩阵,按照题目要求依次往进去添加数据;
- 分别定义矩阵的上下左右边界为 t , b , l , r ;
- 新建num初始化为1 每次添加后加1;
- 以3*3矩阵为例:首先需要在第一行从左到右填充1,2,3,因此此时的循环条件应该是:
for(int i = l; i <= r; i++) arr[t][i] = num++; t++;
- t++的目的是将上边界(蓝色的线)向下移动,以缩小矩阵范围;
- 接下来需要添加4,5,循环条件为:
for(int i = t; i <= b; i++) arr[i][r] = num++; r--;
- 绿色的右边界线向左移动,接下来填充6,7,循环条件是:
for(int i = r; i >= l; i--) arr[b][i] = num++; b--;
- 下边界线(红色的线)向上移动,接下来填充元素8,循环条件是:
for(int i = b; i >= t; i--) arr[i][l] = num++; l++;
- 左边界线(黄色的线)向右移动,至此一轮循环结束,最外层的一层元素已经填充完毕;
- 如果没有循环完将继续重复上面四个步骤,不断地调整四个边界线;
- 判断是否循环完成的条件是 num <= target,num 没有超过 target 说明元素还没有填充完毕。
输入输出示例
代码
class Solution {
public int[][] generateMatrix(int n) {
int num = 1, target = n*n;
int l = 0, r = n-1, t = 0, b = n-1;
int[][] arr = new int[n][n];
while(num <= target){
for(int i = l; i <= r; i++) arr[t][i] = num++;
t++;
for(int i = t; i <= b; i++) arr[i][r] = num++;
r--;
for(int i = r; i >= l; i--) arr[b][i] = num++;
b--;
for(int i = b; i >= t; i--) arr[i][l] = num++;
l++;
}
return arr;
}
}
边栏推荐
- 从文本匹配到语义相关——新闻相似度计算的一般思路
- 转运RNA(tRNA)甲基化修饰7-甲基胞嘧啶(m7C)|tRNA-m7G
- CS kill-free pose
- (十六)51单片机——红外遥控
- EMQX Newsletter 2022-07|EMQX 5.0 正式发布、EMQX Cloud 新增 2 个数据库集成
- Detailed demonstration pytorch framework implementations old photo repair (GPU)
- Detailed steps for tensorflow-gpu2.4.1 installation and configuration
- ThreadLocal详解
- YARN功能介绍、交互流程及调度策略
- 「游戏建模干货」建模大师几步操作,学习经典,赶紧脑补一下吧
猜你喜欢
倒计时2天,“文化数字化战略新型基础设施暨文化艺术链生态建设发布会”启幕在即
Golang死信队列的使用
1161 最大层内元素和——Leetcode天天刷【BFS】(2022.7.31)
【飞控开发高级教程6】疯壳·开源编队无人机-AI语音控制
codeforces:C. Maximum Subrectangle【前缀和 + 贪心 + 最小子数组和】
数据驱动的软件智能化开发| ChinaOSC
从腾讯阿里等大厂出来创业搞 Web3、元宇宙的人在搞什么
开源教育论坛| ChinaOSC
LeetCode 952. Calculate Maximum Component Size by Common Factor
RNA核糖核酸修饰荧光染料|HiLyte Fluor 488/555/594/647/680/750标记RNA核糖核酸
随机推荐
Anaconda 虚拟环境迁移
安装anaconda并创建虚拟环境
Pytorch GPU 训练环境搭建
从腾讯阿里等大厂出来创业搞 Web3、元宇宙的人在搞什么
收藏-即时通讯(IM)开源项目OpenIM-功能手册
数据驱动的软件智能化开发| ChinaOSC
微导纳米IPO过会:年营收4.28亿 君联与高瓴是股东
RNA核糖核酸修饰RNA-HiLyte FluorTM 405荧光染料|RNA-HiLyte FluorTM 405
若依集成browscap读取浏览器用户代理
子树的大小
JWT详解
盘点在线帮助中心对企业能够起到的作用
模板字符串概述
花 30 美金请 AI 画家弄了个 logo,网友:画得非常好,下次别画了!
net-snmp编译报错:/usr/bin/ld: cannot find crti.o: No such file or directory
tRNA-m5C转运RNA(tRNA)修饰5-甲基胞嘧啶(m5C)|tRNA修饰m1Am2A (2-methyladenosine)
Detailed explanation of JWT
Alexa染料标记RNA核糖核酸|RNA-Alexa 514|RNA-Alexa 488|RNA-Alexa 430
倒计时2天,“文化数字化战略新型基础设施暨文化艺术链生态建设发布会”启幕在即
RNA核糖核酸修饰荧光染料|HiLyte Fluor 488/555/594/647/680/750标记RNA核糖核酸