Leetcode练习(Python):数组类:第54题:给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。


题目:
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。
思路:
使用两个指针,然后控制好边界就可以了。
程序:
class Solution:
    def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
        row = len(matrix)
        if row <= 0:
            return []
        column = len(matrix[0])
        result = []

        row_begin = 0
        row_end = row - 1
        column_begin = 0
        column_end = column - 1

        while row_begin <= row_end and column_begin <= column_end:
            for index1 in range(column_begin, column_end + 1):
                result.append(matrix[row_begin][index1])
            row_begin += 1
            
            for index2 in range(row_begin, row_end + 1):
                result.append(matrix[index2][column_end])
            column_end -= 1

            for index1 in range(column_end, column_begin - 1, -1):
                if row_end >= row_begin:
                    result.append(matrix[row_end][index1])
            row_end -= 1

            for index2 in range(row_end, row_begin - 1, -1):
                if column_end >= column_begin:
                    result.append(matrix[index2][column_begin])
            column_begin += 1
        
        return result


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 Leetcode练习(Python):数组类:第59题:给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 Leetcode练习(Python):数组类:第73题:给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 Leetcode练习(Python):二分查找类:第240题:搜索二维矩阵 II:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 1.7编写一个算法,若M*N矩阵中某个元素为0,则将其所在的行与列清零。 螺旋填数:读入两个整数m,n,输出一个m行n列的矩阵,这个矩阵是1~m*n这些自然数按照右、下、左、上螺旋填入的结果。 将n*n矩阵顺时针旋转90度 Leetcode练习(Python):数组类:第75题:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 Leetcode练习(Python):数组类:第169题:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 Leetcode练习(Python):第448题:找到所有数组中消失的数字:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。 Leetcode练习(Python):数组类:第85题:给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM