zoukankan      html  css  js  c++  java
  • leetcode_54. 螺旋矩阵

    给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
    
     
    
    示例 1:
    
    
    输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
    输出:[1,2,3,6,9,8,7,4,5]
    示例 2:
    
    
    输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
    输出:[1,2,3,4,8,12,11,10,9,5,6,7]
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/spiral-matrix
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    
    class Solution:
        def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
            if not matrix or not matrix[0]:return []
            rows,columns=len(matrix),len(matrix[0])
            total=rows*columns
            res=[]
            directions=[[0,1],[1,0],[0,-1],[-1,0]]#右、下、左,上
            row,column=0,0
            directionIndex=0
            for i in range(total):
                res.append(matrix[row][column])
                matrix[row][column]='v'
                nextRow,nextColumn=row+directions[directionIndex][0],column+directions[directionIndex][1]
                if not(0<=nextRow<rows and 0<=nextColumn<columns and not matrix[nextRow][nextColumn]=='v'):
                    directionIndex=(directionIndex+1)%4
                row+=directions[directionIndex][0]
                column+=directions[directionIndex][1]
            return res
    
  • 相关阅读:
    MySQL 中文显示乱码
    sprintf
    持续集成
    两个数据库中的数据同步问题(转)
    指针和引用的区别
    #define,const,typedef三者联系与区别
    [转载]selenium webdriver学习(八)
    PHPUnit学习安装
    CI是什么?
    图形界面的操作(转)
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14409035.html
Copyright © 2011-2022 走看看