leetcode 62.不同路徑
m 行 n 列和 n 行 m 列的路線種數是一樣的 (約定將小的數作為行)
1行n列 只有一條路線
2行n列 有n條路線 可以理解為一直向右走 途中有 n 次向下走的機會 所以一共有 n 條可能路線
3行n列
#a,b分別代表行和列
上述**超出了時間限制 對**進行優化 將結果用陣列存起來 最終答案:
def uniquepaths(self, m, n):
#將小的數字作為行放在m中
if m>n:
tmp=m
m=nn=tmp
#定義陣列a用來存放資料
a = [[0 for i in range(101)] for i in range(101)]
#前三行存入資料
for i in range(1,n+1):
a[1][i]=1
a[2][i]=i
a[3][i]=int(i*(i+1)/2)
#對後續的其他情況進行賦值
for row in range(4,m+1):
for col in range(1,n+1):
# m行n列 和 n行m列 的結果是一樣的
#定義陣列a用來存放資料
a = [[0 for i in range(101)] for i in range(101)]
#前兩行存入資料
for i in range(1,n+1):
a[1][i]=1
a[2][i]=i
#對後續的其他情況進行賦值
for row in range(3,m+1):
for col in range(1,n+1):
# m行n列 和 n行m列 的結果是一樣的
if a[col][row]>0:
a[row][col]=a[col][row]
else:
a[row][col]=a[row-1][col]+a[row][col-1]
return a[m][n]
錯誤:a=[[0]*10]*10
正確:a = [[0 for i in range(10)] for i in range(10)]
Leetcode 62 不同路徑
乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?說明 m 和 n 的值均不超過 100。示例 ...
leetcode 62 不同路徑
時間複雜度o n2 def uniquepaths m,n 計算路徑的個數 memo 0 for j in range n for i in range m for i in range m for j in range n if i 0 and j 0 memo i j 1 elif j 0 me...
LeetCode 62 不同路徑
乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?說明 m 和 n 的值均不超過 100。示例 ...