首页 > 编程语言 >算法--2023.1.15

算法--2023.1.15

时间:2023-01-15 12:35:08浏览次数:47  
标签:15 dp2 dp1 nums -- int 2023.1 节点 dp

1.力扣198--打家劫舍

class Solution {
    public int rob(int[] nums) {
        int n = nums.length;
        int[] dp = new int[n+1];
        dp[0] = 0;
        dp[1] = nums[0];
        //状态转移:
        //遍历到第i个节点,比较遍历到前一个节点与前两个节点加上当前节点的最大值,最为第i个节点的值
        for(int i = 2;i<=n;i++){
            dp[i] = Math.max(nums[i-1]+dp[i-2],dp[i-1]);
        }
        return dp[n];
    }
}

2.力扣213--打家劫舍2

class Solution {
    public int rob(int[] nums) {
        int n = nums.length;
        if(n == 1){
            return nums[0];
        }
        //原理同上,在此基础上,增加一个dp数组
        int[] dp1 = new int[n+1];
        //第二个dp数组遍历到第一个节点的时候,dp[1]设置为0代表不用低一个节点的值,这样就一定可以用最后一个节点
        int[] dp2 = new int[n+1];
        dp1[0] = 0;dp1[1] = nums[0];
        dp2[0] = 0;dp2[1] = 0;
        for(int i = 2; i<= n;i++){
            dp1[i] = Math.max(dp1[i-2]+nums[i-1],dp1[i-1]);
            dp2[i] = Math.max(dp2[i-2]+nums[i-1],dp2[i-1]);
        }
        //返回的时候,比较dp1倒数第二个节点与dp2的最后一个节点
        //两种情况:
        //1.如果没用到第一个节点的值,则dp2[n]>dp1[n-1];
        //1.如果在dp1中用到了第一个节点的值,dp2可以保证一定没有用到,则比较dp1[n-1]与dp2[n]的值即可
        return Math.max(dp1[n-1],dp2[n]);
    }
}

  

 

标签:15,dp2,dp1,nums,--,int,2023.1,节点,dp
From: https://www.cnblogs.com/lyjps/p/17053312.html

相关文章

  • 如何提问 :提问的智慧
    介绍:在黑客的世界里,您对技术问题得到的答案类型取决于您提出问题的方式和得出答案的难度。本指南将教您如何以更有可能获得满意答案的方式提问。既然开放源代码的使用已......
  • 深圳罗湖医院集团整合照护项目,为为失能老年人免费上门助浴。
     老有所助,“沐浴”幸福罗湖医院集团整合照护项目为失能老年人免费上门助浴活动https://mp.weixin.qq.com/s/9yG6fPFaSYQ6ncoyBQoSLA  ......
  • C# 中的闭包一个小问题
    usingSystem;varfuns=newAction[10];for(vari=0;i<10;i++)funs[i]=()=>Console.WriteLine(i);foreach(varfninfuns)fn();猜测这段......
  • elasticsearch实现基于拼音搜索
    目录1、背景2、安装拼音分词器3、拼音分词器提供的功能4、简单测试一下拼音分词器4.1dsl4.2运行结果5、es中分词器的组成6、自定义一个分词器实现拼音和中文的搜索1、创......
  • python—web自动化(3)—验证码处理(商城-后台添加商品,小案例1)
    案例需求登录后台管理中心-点击商品管理点击‘添加商品’输入商品名称选择商品分类选择商品品牌点击提交按钮 技术点:验证码处理思路  验证码处理......
  • docker中离线安装nginx
    注:默认已经安装好docker。 为什么要离线安装?其实离线安装是建立在在线安装的基础上的;因为有可能我们的服务器由于安全问题无法访问外网,自此我们需要将镜像手动上传至服......
  • 关于查询maven依赖排查的问题
    背景公司扫描服务依赖项的时候,发现服务中有引用了logback的包,因版本过低,需要升级才能修复风险。通过maven的DependencyAnalyzer工具,确实找到了一些,排掉后,扫描发现,还存......
  • vbNullChar
    当在VB中声明变量为如下形式,运行时将给szPath分配空间,且初使化值均为:vbNullChar,而不是空格.DimszPathAsString*255szPath=vbNullChar&vbNullChar&vbNullChar&...255......
  • 一位IT从业人员的心路历程 (转并修版)
       「Statgraphics统计绘图入门详论」是我的第一本着作,时值1990年9月,当时我还是一位大三升大四的学生。屈指算算,14年来,我已经撰写了60本以上的书籍(简体版未计算在内),其......
  • 英语一百句 -- 经典
    1.I'manofficeworker.我是上班族。2.Iworkforthegovernment.我在政府机关做事。3.I'mhappytomeetyou.很高兴见......