leetcode刷題python之不同路徑II

2021-09-29 02:49:55 字數 848 閱讀 2326

思路:與不同路徑i類似,都是動態規劃,結果取決於之前的點,有障礙的點需要設定為0,對於第一列和第一行,因為它們沒有前一列和前一行,需要特殊判斷。

import numpy as np

class solution:

def uniquepathswithobstacles(self, obstaclegrid: list[list[int]]) -> int:

n = len(obstaclegrid)

m = len(obstaclegrid[0])

dp = np.ones((n,m), dtype=int) - np.array(obstaclegrid, dtype=int)

dp[0][0] = not obstaclegrid[0][0]

for i in range(1, m):

dp[0][i] = dp[0][i - 1] if not obstaclegrid[0][i] else 0

for j in range(1, n):

dp[j][0] = dp[j - 1][0] if not obstaclegrid[j][0] else 0

for i in range(1, n):

for j in range(1, m):

if not obstaclegrid[i][j]:

dp[i][j] = dp[i - 1][j] + dp[i][j - 1]

# print("i為 " + str(i) +"j為 " + str(j))

else:

dp[i][j] = 0

return dp[n - 1][m - 1]

Leetcode鍊錶刷題 pytho語言

為方便後續的使用查詢,記錄一下 函式包括 找到兩個單鏈表相交的起始節點 反轉單鏈表 刪除鍊錶中等於給定值 val 的所有節點 definition for singly linked list.class listnode object def init self,x self.val x self...

開始刷題LeetCode

今天決定開始刷題,每天至少一題,如果題目確實沒有解決出來沒有關係,但是要保證每天至少接觸了一道新的題目!一定要堅持下去,現在是個菜鳥可能會感覺有點難度,堅持下去,總有一天會好的!今天是第一天,做的第乙個題目 reverse words in a string given an input strin...

leetcode刷題歷程

難度 簡單 題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 ...