Task26(一般)陣列 62不同路徑

2021-09-27 03:22:18 字數 1702 閱讀 5721

62. 不同路徑

乙個機械人位於乙個 m x n 網格的左上角 (起始點在下圖中標記為「start」 )。

機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角(在下圖中標記為「finish」)。

問總共有多少條不同的路徑?

例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?

說明:m 和 n 的值均不超過 100。

示例 1:

輸入: m = 3, n = 2

輸出: 3

解釋:從左上角開始,總共有 3 條路徑可以到達右下角。

向右 -> 向右 -> 向下

向右 -> 向下 -> 向右

向下 -> 向右 -> 向右

示例 2:

輸入: m = 7, n = 3

輸出: 28

排列組合思路:

機械人一定會走m+n-

2步,即從m+n-

2中挑出m-

1步向下走?即c((m+n-

2),(m-

1))。

class

solution

:def

uniquepaths

(self, m:

int, n:

int)

->

int:

""" ans = ((m-1 + n-1))!/(m-1)!(n-1)!

"""deffactor

(num)

:if num <2:

return

1 res =

1for i in

range(1

, num+1)

: res *= i

return res

ans = factor(m+n-2)

//(factor(m-1)

* factor(n-1)

)return ans

動態規劃思路:

class

solution

(object):

defuniquepaths

(self, m, n)

: dp =[[

0for _ in

range

(n)]

for _ in

range

(m)]

dp[0]

[0]=

0for i in

range

(m):

dp[i][0

]=1for j in

range

(n):

dp[0]

[j]=

1for i in

range(1

, m)

:for j in

range(1

, n)

: dp[i]

[j]= dp[i-1]

[j]+ dp[i]

[j-1

]return dp[-1

][-1

] dp[i]

[j]= dp[i-1]

[j]+ dp[i]

[j-1

]return dp[-1

][-1

]

Task24(一般)陣列 54螺旋矩陣

54.螺旋矩陣給定乙個包含 m x n 個元素的矩陣 m 行,n 列 請按照順時針螺旋順序,返回矩陣中的所有元素。示例 1 輸入 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例 2 輸入 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,...

iphone6 2招電量使用延長一般

目前的手機電池不夠用是經常被拿來吐槽的,iphone也不例外。總的電量不會增加了,那只能是節約來增加手機的使用 1 wifi情況下關閉4g,不使用4g就關掉 4g移動瀏覽是非常費電的,不管一使用不使用,它都會在附近搜尋訊號,諾基亞曾經報告說,4g手機至少比3g手機多耗電5 20 關掉手機螢幕,但你的...

Task33(一般)鍊錶 61旋轉鍊錶

61旋轉鍊錶 給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1 2 3 4 5 null,k 2 輸出 4 5 1 2 3 null 解釋 向右旋轉 1 步 5 1 2 3 4 null 向右旋轉 2 步 4 5 1 2 3 null示例 2 輸入 ...