力扣 59.螺旋矩阵 || - 输入:n = 1 Output:[[1]] 提示
最编程
2024-10-07 10:32:24
...
1 <= n <= 20
class Solution {
public int[][] generateMatrix(int n) {
int[][] nums=new int[n][n];
int startX=0,startY=0; //每一圈的起始点
int offset=1;
int circle=1; //当前圈数
int i=0,j=0;
int count=1; //要填的数字
while(circle<=n/2){ //一共n/2圈
//顶部
for(j=startY;j<n-offset;j++){
nums[startX][j]=count++;
}//循环结束时j=n-offset
//右列
for(i=startX;i<n-offset;i++){
nums[i][j]=count++;//j=n-offset
}//循环结束时i=n-offset
//底部
//此时j=n-offset,不需要初始化,且i=n-offset
for(;j>startY;j--){
nums[i][j]=count++;//i=n-offset
}//循环结束时j=startY=0
//左列
for(;i>startX;i--){
nums[i][j]=count++;//j=startY=0
}//循环结束时i=startX=0,j=startY=0
startX++;
startY++;
offset++;
circle++;
}
//n为奇数时,需要单独处理中心点
if(n%2!=0){
nums[n/2][n/2]=n*n;
//nums[startX][startY] = count;
}
return nums;
}
}
下一篇: 决策树:简单易懂的预测模型
推荐阅读
-
MySQL实验室8:查询数据(1)--select语句的基本用法
-
LeetCode 问题练习与摘要:窥视迭代器 - 284 - 输入: ["PeekingIterator"、"next"、"peek"、"next"、"next"、"hasNext"] [[[1, 2, 3]], , , , , , ] 输出: [空,1,2,2,3,false] 说明: PeekingIterator peekingIterator = new PeekingIterator([1, 2, 3]); // [1,2,3]. peekingIterator.next; // 返回 1,指针移动到下一个元素 [1,2,3]. peekingIterator.peek; // 返回 2,指针没有移动 [1,2,3] peekingIterator.next; // 返回 2,指针移动到下一个元素 [1,2,3] peekingIterator.next; // 返回 3,指针移动到下一个元素 [1,2,3] peekingIterator.hasNext; // 返回 False 小贴士
-
铯的一些神奇概念和技术过程 (1)
-
构建符合图形结构的二维矩阵
-
线性代数杂谈 (1) - 基本矩阵
-
力扣 59.螺旋矩阵 || - 输入:n = 1 Output:[[1]] 提示
-
Windows 设置 RTMP 服务器-1 Nginx-RTMP 服务器设置
-
华为 - MUX VLAN 简介和配置示例-1.背景介绍
-
YOLO v1 详细解释-2) YOLO v
-
算法入门(C#):输入日期以获取第二天的日期