zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):数组类:第59题:给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

    题目:
    给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
    思路:
    是第54题的逆向过程
    程序:
    class Solution:
        def generateMatrix(self, n: int) -> List[List[int]]:
            if n <= 0:
                return []
            if n == 1:
                return [[1]]

            matrix = [[0 for i in range(n)] for i in range(n)]

            row_begin = 0
            row_end = n - 1
            column_begin = 0
            column_end = n - 1

            number = 1
            
            while row_begin <= row_end and column_begin <= column_end and number <= n * n:
                for index1 in range(column_begin, column_end + 1):
                    matrix[row_begin][index1] = number
                    number += 1
                row_begin += 1
                for index2 in range(row_begin, row_end + 1):
                    matrix[index2][column_end] = number
                    number += 1
                column_end -= 1
                for index1 in range(column_end, column_begin - 1, -1):
                    if row_end >= row_begin:
                        matrix[row_end][index1] = number
                    number += 1
                row_end -= 1
                for index2 in range(row_end, row_begin - 1, -1):
                    if column_end >= column_begin:
                        matrix[index2][column_begin] = number
                    number += 1
                column_begin += 1
            return matrix  
     
  • 相关阅读:
    使用Xshell为xftp开ssh通道代理
    linux下查找svn的相关目录的命令
    linux服务器A远程连接服务器B的mysql及1045错误
    怎样下载带权限认证的文件?
    Vue项目打包部署总结
    Vue项目打包压缩:让页面更快响应
    axios请求失败自动重发
    可用的后台管理系统
    vue组件间方式总结
    非脚手架创建vue项目,并使用webpack打包
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12738611.html
Copyright © 2011-2022 走看看