1. 程式人生 > 其它 >http狀態碼413,並提示Request Entity Too Large的解決辦法

http狀態碼413,並提示Request Entity Too Large的解決辦法

題目:劍指 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)