当前位置:网站首页>力扣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;
}
}边栏推荐
- CSDN帐号管理规范
- relocation R_X86_64_PC32 against,/usr/bin/ld: final link failed: Bad value
- 「游戏建模干货」建模大师几步操作,学习经典,赶紧脑补一下吧
- 【leetcode】剑指 Offer II 007. 数组中和为 0 的三个数(双指针)
- Matlab paper illustration drawing template No. 42 - bubble matrix diagram (correlation coefficient matrix diagram)
- 622 设计循环队列——Leetcode天天刷【循环队列,数组模拟,双指针】(2022.8.2)
- Use ControlTemplate or Style from resource file in WPF .cs and find the control
- FreeRTOS Intermediate
- 深入理解JVM-内存结构
- 模板字符串概述
猜你喜欢
随机推荐
Node version switching tool NVM and npm source manager nrm
JMeter笔记5 |Badboy使用和录制
那些年我写过的语言
alicloud3搭建wordpress
2022 CCF中国开源大会会议通知(第三轮)
【飞控开发高级教程3】疯壳·开源编队无人机-定高、定点、悬停
List类的超详细解析!(超2w+字)
消除对特权账户的依赖使用Kaniko构建镜像
Detailed explanation of JWT
Auto.js实现朋友圈自动点赞
汉源高科8光口12电口交换机千兆8光8电12电16电网管型工业以太网交换机
Hinton2022年RobotBrains访谈记录
1-php学习笔记之数据类型
php根据两点经纬度计算距离
边缘盒子+时序数据库,美的数字化平台 iBuilding 背后的技术选型
宁德时代2号人物黄世霖辞任副董事长:身价1370亿
转运RNA(tRNA)甲基化修饰7-甲基胞嘧啶(m7C)|tRNA-m7G
极验深知v2分析
ARMuseum
Detailed steps for tensorflow-gpu2.4.1 installation and configuration









