LeetCode騰訊50題 62不同路徑

2021-09-09 01:56:29 字數 1029 閱讀 8216

請注意!!!!主要用來自己馬克自己的筆記,不是最優解!!不是最優解!!不是最優解!!請不要噴我。。。

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

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

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

思路:動態規劃題。

dp[i][j]表示[i][j]時的路徑數。每個格只能從左、上來,所以:

轉移方程:dp[i][j] = dp[i-1][j] + dp[i][j-1]

ps:如果dp陣列大小為 m x n 的話,dp[i][0] 和 dp[0][j]都需要特殊處理。所以這裡把dp大小變為m+1 x n+1 。

class solution(object):

def uniquepaths(self, m, n):

""":type m: int

:type n: int

:rtype: int

"""#dp[i][j]表示[i][j]時的路徑數。每個格只能從左、上來,所以:

#轉移方程:dp[i][j] = dp[i-1][j] + dp[i][j-1]

#需要注意:如果dp陣列大小為 m x n 的話,dp[i][0] 和 dp[0][j]都需要特殊處理。所以這裡把dp大小變為m+1 x n+1 。

#初始化

dp = [([0] * (m+1)) for i in range(n+1)]

dp[1][1]=1

i = 1

while i< n+1:

j = 1

while j < m+1:

if i!=1 or j!=1:

#更新dp[i][j] = dp[i-1][j]+dp[i][j-1]

j += 1

i += 1

return dp[n][m]

leetcode騰訊精選50題(1)

菜鳥第一課 給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新的長度 2,並且原陣列 nums 的前兩個元素...

leetcode 騰訊精選50題 21

given a linked list,rotate the list to the right by k places,where k is non negative.鍊錶的特殊性在於其可以只改變其所指向的位址,而不改變資料存放的真正位址,於是將其收尾閉合後可直接得到乙個閉環的鍊錶,在將其在指定的...

leetcode 騰訊50題 4 50 整數反轉

給定乙個int型整數,請將各位數字反轉。如果結果大於int max或小於int min,請返回0.樣例1輸入 123 輸出 321 樣例2輸入 123 輸出 321 樣例3輸入 120 輸出 21 通過 10每次取出最後一位,然後 10將最後一位刪去,將取出的那位不停加入到翻轉的數字上,當原數字刪除...