http狀態碼413,並提示Request Entity Too Large的解決辦法
阿新 • • 發佈:2022-03-28
題目:劍指 Offer 13. 機器人的運動範圍
解題思路1:DFS
機器人從(0,0)出發,只需向右和向下即可將所有的單元格遍歷一次,遍歷過程中加上限制條件。設定一個set用於儲存遍歷過的可行的單元格座標,程式碼如下:
時間:\(O(MN)\)
空間:\(O(MN)\)
class Solution: def movingCount(self, m: int, n: int, k: int) -> int: # 求數位和 def ssum(a): res = 0 while a: res += a % 10 a //= 10 return res def dfs(i, j): if not 0 <= i < m or not 0 <= j < n or ssum(i) + ssum(j) > k: return 0 if (i, j) not in visited: visited.add((i, j)) return 1 + dfs(i+1, j) + dfs(i, j+1) else: return 0 visited = set() return dfs(0, 0)
優質解答:(參考自K神)
思想基本相同,優化了取數位和的方法。
class Solution: def movingCount(self, m: int, n: int, k: int) -> int: def dfs(i, j, si, sj): if i >= m or j >= n or k < si + sj or (i, j) in visited: return 0 visited.add((i,j)) return 1 + dfs(i + 1, j, si + 1 if (i + 1) % 10 else si - 8, sj) + dfs(i, j + 1, si, sj + 1 if (j + 1) % 10 else sj - 8) visited = set() return dfs(0, 0, 0, 0)