当前位置:网站首页>力扣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;
}
}边栏推荐
- Alexa染料标记RNA核糖核酸|RNA-Alexa 514|RNA-Alexa 488|RNA-Alexa 430
- 极验深知v2分析
- 安装anaconda并创建虚拟环境
- 2022 CCF中国开源大会会议通知(第三轮)
- 数学之美 第六章——信息的度量和作用
- JMeter笔记5 |Badboy使用和录制
- 高性能计算软件与开源生态| ChinaOSC
- Network protocol-TCP, UDP difference and TCP three-way handshake, four wave
- EMQX Newsletter 2022-07|EMQX 5.0 正式发布、EMQX Cloud 新增 2 个数据库集成
- 小马智行起诉擎天智卡:索赔6000万 彭军称要斗争到底
猜你喜欢

RNA核糖核酸修饰荧光染料|HiLyte Fluor 488/555/594/647/680/750标记RNA核糖核酸

JS 内置构造函数 扩展 prototype 继承 借用构造函数 组合式 原型式creat 寄生式 寄生组合式 call apply instanceof

tRNA-m5C转运RNA(tRNA)修饰5-甲基胞嘧啶(m5C)|tRNA修饰m1Am2A (2-methyladenosine)

调用EasyCVR接口时视频流请求出现404,并报错SSL Error,是什么原因?

CS kill-free pose

LeetCode 622. Designing Circular Queues

友宏医疗与Actxa签署Pre-M Diabetes TM 战略合作协议

ESP8266-Arduino编程实例-BH1750FVI环境光传感器驱动

In-depth understanding of JVM-memory structure

RNA-ATTO 390|RNA-ATTO 425|RNA-ATTO 465|RNA-ATTO 488|RNA-ATTO 495|RNA-ATTO 520近红外荧光染料标记核糖核酸RNA
随机推荐
数学之美 第六章——信息的度量和作用
List类的超详细解析!(超2w+字)
模板字符串概述
小马智行起诉擎天智卡:索赔6000万 彭军称要斗争到底
Jingdong cloud released a new generation of distributed database StarDB 5.0
tRNA-m5C转运RNA(tRNA)修饰5-甲基胞嘧啶(m5C)|tRNA修饰m1Am2A (2-methyladenosine)
MySQL Basics
盘点在线帮助中心对企业能够起到的作用
glide set gif start stop
ESP8266-Arduino编程实例-WS2812驱动
开源生态研究与实践| ChinaOSC
redis常用命令,HSET,XADD,XREAD,DEL等
盘点在线帮助中心对企业能够起到的作用
Matlab paper illustration drawing template No. 42 - bubble matrix diagram (correlation coefficient matrix diagram)
JMeter笔记5 |Badboy使用和录制
华为设备配置VRRP负载分担
(十六)51单片机——红外遥控
Network protocol-TCP, UDP difference and TCP three-way handshake, four wave
怎么将自己新文章自动推送给自己的粉丝(巨简单,学不会来打我)
relocation R_X86_64_PC32 against,/usr/bin/ld: final link failed: Bad value