`
hcx2013
  • 浏览: 88890 次
社区版块
存档分类
最新评论

Spiral Matrix II

 
阅读更多

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;
	}
}
 
1
0
分享到:
评论

相关推荐

    js-leetcode题解之59-spiral-matrix-II.js

    js js_leetcode题解之59-spiral-matrix-II.js

    C语言-leetcode题解之59-spiral-matrix-ii.c

    c语言入门 C语言_leetcode题解之59-spiral-matrix-ii.c

    c++-c++编程基础之leetcode题解第59题螺旋矩阵II.zip

    第59题"螺旋矩阵II"(Spiral Matrix II)是LeetCode中的一个经典问题,它涉及到矩阵操作和迭代。在这个问题中,我们需要生成一个特定大小的螺旋矩阵,从中心向外螺旋式填充数字。 螺旋矩阵是一种特殊的二维数组,其...

    js-leetcode题解之54-spiral-matrix.js

    js js_leetcode题解之54-spiral-matrix.js

    C语言-leetcode题解之54-spiral-matrix.c

    c是最好的编程语言 C语言_leetcode题解之54-spiral-matrix.c

    LeetCode最全代码

    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/...

    leetcode338-leetcode_cpp:leetcode的C++代码

    第 338 章leetcode_cpp leetcode 的 C++ 代码 包含的问题 1 两和容易2 加两个数中5 最长回文子串中6 ZigZag 转换介质7 反转整数简单8 ...II ...Spiral Matrix II 培养基61 轮播列表中第62话第63话64 最小路径和中66

    SpiralMatrixII-Leetcode-59

    其中,问题59,名为"Spiral Matrix II"(螺旋矩阵II),是中级难度的一个挑战,主要考察的是矩阵遍历的技巧。该问题的核心目标是生成一个给定大小的螺旋矩阵,从中心开始,以螺旋形状填充数字。 首先,让我们明确...

    interview:总结一下面试常考的算法题,希望可以帮助每一位想要提升自己面试能力的同学。对于每一道算法题会总结代码、时间复杂度以及一些好的blog

    对于每一道算法题会总结代码、时间复杂度以及一些好的blog排序(sort)...Spiral Matrix IILeetCode 53 Maximum SubarrayLeetCode 152 Maximum Product SubarrayLintCode 138 Subarray SumLintCode 139 Subarray Sum ...

    spiral-matrix:螺旋矩阵

    螺旋矩阵螺旋矩阵项目介绍从矩阵的中间开始,按顺时针方向向右...要求必需的阿帕奇Maven Java JDK 7建造mvn clean install package && cd target && java -jar spin-matrix-1.0.jar && cd ..常问问题执照 Copyright

    Spiral-matrix:螺旋矩阵

    螺旋矩阵是一种特殊的二维数组,它的元素按照特定的螺旋顺序排列。在给定的题目中,我们需要生成一个n×n的正方形矩阵,其中包含了从1到n²的所有自然数,并且这些数字按照顺时针方向螺旋排列。...

    Matrix_Spiral_Clockwise

    任务 : 编写一个程序,该程序以顺时针螺旋顺序打印/返回2D矩阵的元素。抽象的: 就性能而言,编写短代码并不总是意味着它是高质量的代码。 同样,编写更长的代码并不意味着它是不好的代码! Numpy数组由于其同质...

    JAVA蛇形数组(向下开始)

    printSpiral(matrix, 0, 0, matrix.length - 1, matrix[0].length - 1); } } ``` 在这个例子中,`printSpiral` 方法递归地处理每个子矩形,直到所有元素都被打印。请注意,这个实现假设数组的大小为奇数,对于偶数...

    leetcode答案-Spiral-Matrix:返回二维数组中整数元素的顺时针螺旋列表

    leetcode 答案螺旋矩阵 返回二维数组中整数元素的顺时针螺旋列表 [答案击败 100% Java LeetCode 运行时提交] [答案击败 100% Java LeetCode 内存使用提交] 大(O)= O(N)

    c++-c++编程基础之leetcode题解第54螺旋矩阵.zip

    在本压缩包中,主题聚焦于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...

    javalruleetcode-Leetcode-Solutions:为了去头条而刷题

    java lru leetcode LeetCode Solutions 算法 - Algorithms 排序算法:快速排序、归并排序、计数排序 搜索算法:回溯、递归、剪枝技巧 图论:最短路、最小生成树、网络流建模 动态规划:背包问题、最长子序列、计数...

    Spiral.zip_数学计算_C/C++_

    描述中提到的"Done for programming class"暗示这是一个编程课程作业,目的是生成螺旋矩阵(Spiral Matrix)。螺旋矩阵是一种特殊的二维数组,其元素按照顺时针或逆时针方向螺旋式填充。 在C/C++编程中,实现螺旋...

    C++螺旋数组

    void spiralOrder(vector&lt;vector&lt;int&gt;&gt;& 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...

Global site tag (gtag.js) - Google Analytics