• 顺时针打印矩阵


    题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。

    例如:

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

    题解:

    根据题目示例  matrix = [[1,2,3],[4,5,6],[7,8,9]] 的对应输出 [1,2,3,6,9,8,7,4,5] 可以发现,顺时针打印矩阵的顺序是 “从左向右、从上向下、从右向左、从下向上” 循环

    因此考虑设定矩阵的“上、下、左、右”的边界值,模拟以上矩阵遍历顺序

    def spiralOrder(matrix):
    if not matrix: return
    up,down=0,len(matrix)-1
    left,right=0,len(matrix[0])-1
    res=[]
    while left<=right and up<=down:
    for i in range(left,right+1):#左到右
    res.append(matrix[up][i])
    up+=1
    if up>down: break
    for i in range(up,down+1):#上到下
    res.append(matrix[i][right])
    right-=1
    if left>right: break
    for i in range(right,left-1,-1):#右到左
    res.append(matrix[down][i])
    down-=1
    for i in range(down,up-1,-1):#下到上
    res.append(matrix[i][left])
    left+=1
    return res

    if __name__=="__main__":
    matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    print(spiralOrder(matrix))
  • 相关阅读:
    HTML5之标签
    Linux常用命令(二十四)
    Linux常用命令(二十三)
    Python 定位excel表格的最后一个单元格的位置
    tornado学习
    Linux一些基础命令
    用python打造自己的SDK--使用setuptools打包安装
    Centos开放指定端口命令
    python sqlalchemy基本使用
    python rpc
  • 原文地址:https://www.cnblogs.com/ff-gaofeng/p/12661171.html
Copyright © 2020-2023  润新知