【数组】59. 螺旋矩阵 II

举报
子都爱学习 发表于 2024/03/25 07:44:06 2024/03/25
【摘要】 【题目】给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]【题解】题解1:思路       看注释复杂度         时间复杂度:O(n),空间复杂度:O(1)代码class Solu...

【题目】

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

 

示例 1:

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

示例 2:

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

【题解】

题解1:

  • 思路

       看注释

  • 复杂度

         时间复杂度:O(n),空间复杂度:O(1)

  • 代码
class Solution:
    def generateMatrix(self, n: int) -> List[List[int]]:
        # 生成一个n*n到数组
        res = [[0]*n for i in range(n)]
        # 初始值
        cnt = 1
        left,right,up,down = 0,n-1,0,n-1
        while cnt <= n*n:
            for i in range(left,right+1):
                res[up][i] = cnt
                cnt+=1
            up+=1
            # 从左到右
            for i in range(up, down + 1):
                res[i][right] = cnt
                cnt += 1
            right -= 1
            # 从上到下
            for i in range(right, left-1, -1):
                res [down][i] = cnt
                cnt += 1
            down -= 1
            # 从下到上
            for i in range(down, up-1, -1):
                res[i][left] = cnt
                cnt += 1
            left += 1
        
        return res
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。