首页 > 其他分享 >Study Plan For Algorithms - Part26

Study Plan For Algorithms - Part26

时间:2024-09-09 11:25:20浏览次数:9  
标签:max Study len range grid Plan Algorithms dp 礼物

1. 礼物的最大价值
在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?
方法一:

def maxValue(grid):
    m = len(grid)
    n = len(grid[0])

    # 初始化第一行
    for i in range(1, m):
        grid[i][0] += grid[i - 1][0]

    # 初始化第一列
    for j in range(1, n):
        grid[0][j] += grid[0][j - 1]

    for i in range(1, m):
        for j in range(1, n):
            grid[i][j] += max(grid[i][j - 1], grid[i - 1][j])

    return grid[m - 1][n - 1]

方法二:

def maxValue(grid):
    m = len(grid)
    n = len(grid[0])

    # 使用动态规划数组 dp 存储每个位置的最大价值
    dp = [[0] * n for _ in range(m)]
    dp[0][0] = grid[0][0]

    # 初始化第一行
    for j in range(1, n):
        dp[0][j] = dp[0][j - 1] + grid[0][j]

    # 初始化第一列
    for i in range(1, m):
        dp[i][0] = dp[i - 1][0] + grid[i][0]

    # 动态规划计算每个位置的最大价值
    for i in range(1, m):
        for j in range(1, n):
            # 从上方或左方到达当前位置的最大价值
            up_max = dp[i - 1][j]
            left_max = dp[i][j - 1]

            # 选择较大的值加上当前位置的价值
            dp[i][j] = max(up_max, left_max) + grid[i][j]

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

标签:max,Study,len,range,grid,Plan,Algorithms,dp,礼物
From: https://blog.csdn.net/qq_24058289/article/details/142007330

相关文章

  • Study Plan For Algorithms - Part27
    1.最长不含重复字符的子字符串请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。方法一:deflengthOfLongestSubstring(s):n=len(s)max_len=0start=0char_index={}forendinrange(n):ifs[en......
  • Applications of UDTL to Intelligent Fault Diagnosis: A Survey and Comparative St
    文章目录摘要一、引言二、背景和定义A.UDTL定义B.基于UDTL的IFD分类C.基于UDTL的IFD动机D.主干结构三、LABEL-CONSISTENTUDTLA.基于网络的UDTLB.基于实例化的UDTLC.基于映射的UDTLD.基于对抗性的IFD四.LABEL-INCONSISTENTUDTLA.PartialUDTLB.OpenSetUDTLC.Uni......
  • Nature Plants | 基因组所张兴坦团队开发无需参考基因组的单倍体分型挂载工具HapHiC
    “近日,《自然·植物(NaturePlants)》在线发表了中国农业科学院深圳农业基因组研究所(岭南现代农业科学与技术广东省实验室深圳分中心,以下简称“基因组所”)张兴坦团队联合南方科技大学陈国安副教授课题组、湖南农业大学易自力教授团队的研究论文,题为“Chromosome-levelscaffolding......
  • Plant Com | 创制水稻高效单倍体诱导系并实现两系不育系单倍体的大规模生产
    2024年8月23日,中国水稻研究所王克剑团队与钱前院士团队、江西省农科院严松团队合作,在植物学知名期刊_PlantCommunications_杂志在线发表了题为“Large-scaleproductionofricehaploidsbycombiningsuperiorhaploidinducerwithPTGMSlines”的文章。该研究成功开发出诱导......
  • Plant Com | 上海师范大学生科院解析杂草稻近代野化的进化机制
    2024年8月19日,上海师范大学生命科学学院的研究团队在_PlantCommunications在线发表了题为“LandraceintrogressioncontributedtotherecentferalizationofweedyriceinEastChina”的论文。研究揭示了我国江浙沪地区稻田中的杂草稻都为近代野化起源,并均衍生于籼型栽培品......
  • Study Plan For Algorithms - Part24
    1.全排列II题目链接:https://leetcode.cn/problems/permutations-ii/给定一个可包含重复数字的序列nums,按任意顺序返回所有不重复的全排列。classSolution:defpermuteUnique(self,nums:List[int])->List[List[int]]:defbacktrack(nums,path,res,us......
  • Study Plan For Algorithms - Part25
    1.栈的压入、弹出序列输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。方法一:defvalidateStackSequences(pushed,popped):stack=[]len_pushed=len(pushed)stack_index=0i......
  • Study Plan For Algorithms - Part23
    1.跳跃游戏II题目链接:https://leetcode.cn/problems/jump-game-ii/给定一个长度为n的0索引整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度:0<=j<=nums[i]i+j<n返回到达nums[n-1]的最小跳跃次数。classSolutio......
  • Study Plan For Algorithms - Part22
    1.字符串相乘题目链接:https://leetcode.cn/problems/multiply-strings/给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。classSolution:defmultiply(self,num1:str,num2:str)->str:ifnum1==......
  • Study Plan For Algorithms - Part21
    1.缺失的第一个正数题目链接:https://leetcode.cn/problems/first-missing-positive/给定一个未排序的整数数组nums,请找出其中没有出现的最小的正整数。classSolution:deffirstMissingPositive(self,nums:List[int])->int:n=len(nums)forii......