Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n = 3
,
You should return the following matrix:
[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
public class Solution { public int[][] generateMatrix(int n) { int[][] res = new int[n][n]; int cnt = 1; int top = 0; int bottom = n - 1; int left = 0; int right = n - 1; while (left < right && top < bottom) { for (int i = left; i < right; i++) { res[top][i] = cnt++; } for (int i = top; i < bottom; i++) { res[i][right] = cnt++; } for (int i = right; i > left; i--) { res[bottom][i] = cnt++; } for (int i = bottom; i > top; i--) { res[i][left] = cnt++; } left++; right--; top++; bottom--; } if (n % 2 != 0) { res[n/2][n/2] = cnt; } return res; } }
相关推荐
js js_leetcode题解之59-spiral-matrix-II.js
c语言入门 C语言_leetcode题解之59-spiral-matrix-ii.c
第59题"螺旋矩阵II"(Spiral Matrix II)是LeetCode中的一个经典问题,它涉及到矩阵操作和迭代。在这个问题中,我们需要生成一个特定大小的螺旋矩阵,从中心向外螺旋式填充数字。 螺旋矩阵是一种特殊的二维数组,其...
js js_leetcode题解之54-spiral-matrix.js
c是最好的编程语言 C语言_leetcode题解之54-spiral-matrix.c
462 | [Minimum Moves to Equal Array Elements II](https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/) | [C++](./C++/minimum-moves-to-equal-array-elements-ii.cpp) [Python](./Python/...
第 338 章leetcode_cpp leetcode 的 C++ 代码 包含的问题 1 两和容易2 加两个数中5 最长回文子串中6 ZigZag 转换介质7 反转整数简单8 ...II ...Spiral Matrix II 培养基61 轮播列表中第62话第63话64 最小路径和中66
其中,问题59,名为"Spiral Matrix II"(螺旋矩阵II),是中级难度的一个挑战,主要考察的是矩阵遍历的技巧。该问题的核心目标是生成一个给定大小的螺旋矩阵,从中心开始,以螺旋形状填充数字。 首先,让我们明确...
对于每一道算法题会总结代码、时间复杂度以及一些好的blog排序(sort)...Spiral Matrix IILeetCode 53 Maximum SubarrayLeetCode 152 Maximum Product SubarrayLintCode 138 Subarray SumLintCode 139 Subarray Sum ...
螺旋矩阵螺旋矩阵项目介绍从矩阵的中间开始,按顺时针方向向右...要求必需的阿帕奇Maven Java JDK 7建造mvn clean install package && cd target && java -jar spin-matrix-1.0.jar && cd ..常问问题执照 Copyright
螺旋矩阵是一种特殊的二维数组,它的元素按照特定的螺旋顺序排列。在给定的题目中,我们需要生成一个n×n的正方形矩阵,其中包含了从1到n²的所有自然数,并且这些数字按照顺时针方向螺旋排列。...
任务 : 编写一个程序,该程序以顺时针螺旋顺序打印/返回2D矩阵的元素。抽象的: 就性能而言,编写短代码并不总是意味着它是高质量的代码。 同样,编写更长的代码并不意味着它是不好的代码! Numpy数组由于其同质...
printSpiral(matrix, 0, 0, matrix.length - 1, matrix[0].length - 1); } } ``` 在这个例子中,`printSpiral` 方法递归地处理每个子矩形,直到所有元素都被打印。请注意,这个实现假设数组的大小为奇数,对于偶数...
leetcode 答案螺旋矩阵 返回二维数组中整数元素的顺时针螺旋列表 [答案击败 100% Java LeetCode 运行时提交] [答案击败 100% Java LeetCode 内存使用提交] 大(O)= O(N)
在本压缩包中,主题聚焦于C++编程基础与LeetCode题目的结合,特别是针对第54题“螺旋矩阵”(Spiral Matrix)的解法。LeetCode是一个在线平台,提供了一系列编程挑战,旨在帮助程序员提升算法技能和解决实际问题的...
def spiral_matrix(n, matrix, row, col, count): if count == 0: return # 向右填充 for _ in range(col, n): matrix[row][col] = count count += 1 col += 1 # 向下填充 if row * n: for _ in range(row...
java lru leetcode LeetCode Solutions 算法 - Algorithms 排序算法:快速排序、归并排序、计数排序 搜索算法:回溯、递归、剪枝技巧 图论:最短路、最小生成树、网络流建模 动态规划:背包问题、最长子序列、计数...
描述中提到的"Done for programming class"暗示这是一个编程课程作业,目的是生成螺旋矩阵(Spiral Matrix)。螺旋矩阵是一种特殊的二维数组,其元素按照顺时针或逆时针方向螺旋式填充。 在C/C++编程中,实现螺旋...
void spiralOrder(vector<vector<int>>& matrix, int n, int m) { int i = 0, j = 0; int dir = 0; // 0 - right, 1 - down, 2 - left, 3 - up while (i ) { for (int k = j; k ; ++k) { // fill right matrix...