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  
     
  • 相关阅读:
    如何使页面中的INPUT按指定的顺序移动焦点{转}
    Eclipse把包引入到项目中的方法
    mssqlserver和sqlexpress的区别{转}
    WPF中动态加载XAML中的控件
    修改Eclipse的智能感知设置
    格式化包括字符串, 数字, 日期, 枚举等类型数据的格式化
    ASP.NET身份验证机制membership入门——配置篇(1){转}
    JAVA基础总结{转}
    asp.net mvc的生命周期{转}
    使用开源免费类库在.net中操作Excel{转}
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12738611.html
Copyright © 2011-2022 走看看