LeetCode 62 不同路徑

2021-10-11 19:06:06 字數 2031 閱讀 4737

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。示例 ...