zoukankan      html  css  js  c++  java
  • 矩阵路径(python)

    m行n列的矩阵,从左上是起点,到右下的最短路径

     1 def best_path(matrix):
     2     i = len(matrix)    # 行数
     3     j = len(matrix[0])  # 列数
     4     # 建立一个标志矩阵  代表着我们当前往哪里走
     5     direction = [[None for k in range(j)] for m in range(i)]
     6     direction[0][0] = '起点'
     7     for k in range(1, j):
     8         matrix[0][k] += matrix[0][k-1]
     9         direction[0][k] = '向左'
    10     for m in range(1, i):
    11         matrix[m][0] += matrix[m-1][0]
    12         direction[m][0] = '向上'
    13     for k in range(1, j):
    14         for m in range(1, i):
    15             temp = min(matrix[m-1][k], matrix[m][k-1])
    16             if temp == matrix[m][k-1]:
    17                 direction[m][k] = '向左'
    18             if temp == matrix[m-1][k]:
    19                 direction[m][k] = '向上'
    20             matrix[m][k] += temp
    21     for d in direction:
    22         print(d)
    23     return matrix, direction
    24 def print_path(direction):
    25     path = []
    26     i = len(direction) -1
    27     j = len(direction[0])-1
    28     while i > 0 and j > 0:
    29         if direction[i][j] == '向左':
    30             j -= 1
    31             path.append('向左')
    32         if direction[i][j] == '向上':
    33             i -= 1
    34             path.append('向上')
    35     path.append('起点')
    36     return path
    37 if __name__ == '__main__':
    38     matrix = [[2, 3, 1, 4, 4],
    39               [2, 1, 4, 5, 3],
    40               [3, 0, 2, 3, 6],
    41               [4, 3, 2, 0, 8],
    42               [4, 2, 0, 2, 1]]
    43     matrix_, direction = best_path(matrix)
    44  
    45     # 打印路径
    46     path = print_path(direction)
    47     print("从终点会起点的路径:", path)
  • 相关阅读:
    MySQL体系结构
    详解MySQL的用户密码过期/锁定解锁功能
    MySQL5.7 密码安全策略
    Python终端如何输出彩色字体
    flashback
    PXC 部署前置检查
    CentOS7 安装docker
    CentOS7 安装ifconfig
    CentOS 7 网络配置
    VMware虚拟机克隆Linux系统引起的网卡问题
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/12171205.html
Copyright © 2011-2022 走看看