题解 | #礼物的最大价值#

礼物的最大价值

http://www.nowcoder.com/practice/2237b401eb9347d282310fc1c3adb134

经典动态规划,递推公式为dp[i][j] = grid[i][j] + max(dp[i-1][j],dp[i][j-1]),即自身加左一或者上一两种情况 下面注释掉的是学来的降低空间复杂度写法,逐行替换最终只用一个一维的dp数组

class Solution:
    def maxValue(self,grid):
        m,n = len(grid),len(grid[0])
        dp = [[0 for _ in range(n)] for _ in range(m)]
        for i in range(0,m):
            for j in range(0,n):
                dp[i][j] = grid[i][j] + max(dp[i-1][j],dp[i][j-1])
        return dp[-1][-1]
    
# class Solution:
#     def maxValue(self , grid ):
#         # write code here
#         x, y = len(grid), len(grid[0])
#         dp = [0]*(y+1)
#         for i in range(0,x):
#             for j in range(1,y+1):
#                 dp[j] = max(dp[j-1],dp[j])+grid[i][j-1]
#         return dp[-1]
全部评论

相关推荐

02-26 15:33
已编辑
西北大学 golang
点赞 评论 收藏
分享
神哥了不得:神哥来啦~有可能只是为了注册账号,这个平台必须发一个招聘才能注册成功的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务