[网格图DP]3363. 最多可收集的水果数目
3363. 最多可收集的水果数目
class Solution:def maxCollectedFruits(self, fruits: List[List[int]]) -> int:n = len(fruits)@cachedef dfs(i,j):if not(n-1-i <= j < n):return -infif i == 0:return fruits[i][j]return max(dfs(i-1,j-1),dfs(i-1,j),dfs(i-1,j+1)) + fruits[i][j]ans = sum(row[i] for i, row in enumerate(fruits))ans += dfs(n-2,n-1)dfs.cache_clear()fruits = list(zip(*fruits))return ans + dfs(n-2,n-1)