欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > Day05:螺旋矩阵Ⅱ

Day05:螺旋矩阵Ⅱ

2024/12/24 2:21:14 来源:https://blog.csdn.net/m0_45253972/article/details/144202351  浏览:    关键词:Day05:螺旋矩阵Ⅱ

题目:题目链接

给你一个正整数 n ,生成一个包含 1n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix

示例 1:

在这里插入图片描述

输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]

示例 2:

输入:n = 1
输出:[[1]]

提示:

  • 1 <= n <= 20

代码:

class Solution {public int[][] generateMatrix(int n) {int [][] res = new int[n][n];int left = 0, right = n-1, top = 0, buttom = n-1;int num = 1, total = n*n;while(num <= total){// 左到右,最上一层元素为res[top][i]for(int i = left; i <= right; i++){res[top][i] = num++;}// 最上面的一层结束 需要top+1,最上层变成第二层top++;// 从上到下,最右层元素为res[i][right]for(int i = top; i <= buttom; i++){res[i][right] = num++;}// 最右侧结束,需要right-1,最右层变成右边倒数第二层right--;// 从右到左,最下层元素为res[bottom][i]for(int i = right; i >= left; i--){res[buttom][i] = num++;}// 最下侧结束,需要buttom-1,最下层变成倒数第二层buttom--;// 从下到上,最左层元素为res[i][left]for(int i = buttom; i >= top; i--){res[i][left] = num++;}// 最左侧结束,需要left+1,最左层变成左边倒数第二层left++;}return res;}}

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com