首页 > 其他分享 >动态规划_打家劫舍III

动态规划_打家劫舍III

时间:2022-12-11 13:55:20浏览次数:30  
标签:动态 TreeNode int res root right new 打家劫舍 III

package 数据结构和算法;
public class d31_动态规划_打家劫舍III {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        
         TreeNode a= new TreeNode(3);
         TreeNode b= new TreeNode(4);
         TreeNode c= new TreeNode(5);
         TreeNode d= new TreeNode(1);
         TreeNode e= new TreeNode(3);
         TreeNode f= new TreeNode(0);
         TreeNode g= new TreeNode(1);
        
             
         a.setLeft(b);
         a.setRight(c);
         
         b.setLeft(d);
         b.setRight(e);
         
//             d.setLeft(f);
         c.setRight(g);
         
//             f.setLeft(h);
//             f.setRight(i);
           int res = rob3(a);
           System.out.print(res);
    }
    
    
    public static int rob3(TreeNode root) {
        int[] res = robAction1(root);
        return Math.max(res[0], res[1]);
    }


    private static int[] robAction1(TreeNode root) {
        // TODO 自动生成的方法存根
        int res[] = new int[2];
        if(root ==null) 
            return res;
        
        int[] left = robAction1(root.left);
        int[] right = robAction1(root.right);
        
        res[0]= Math.max(left[0], left[1]) + Math.max(right[0], right[1]);
        res[1] = root.val + left[0] + right[0];
        
        return res;
    }

 

标签:动态,TreeNode,int,res,root,right,new,打家劫舍,III
From: https://www.cnblogs.com/eyunkeji/p/16973624.html

相关文章

  • 动态规划_买卖股票的最佳时机
    '示例1:'输入:[7,1,5,3,6,4]'输出:5'解释:在第2天(股票价格=1)的时候买入,在第5天(股票价格=6)的时候卖出,最大利润=6-1=5。注意利润不能是7-1=6,因为卖出......
  • Kubernetes(k8s)存储管理之数据卷volumes(五):动态制备-存储类StorageClass
    目录一.系统环境二.前言三.静态制备和动态制备四.存储类StorageClass4.1存储类StorageClass概览4.2StorageClass资源五.创建存储类StorageClass5.1配置NFS服务端以及共......
  • 动态NAT(NAPT)
    源nat:私网到公网的转换(私网访问公网,目的ip没变,只转换了源ip)。实验要求:假设一个企业从运营商那获得一段公网地址(21.16.1.248/29);要求内网电脑可以正常上外放,并能访问外......
  • Qt应用程序三步引用动态链接库DLL
    1、在.pro中添加对lib的引用   INCLUDEPATH+=$$PWD/include   LIBS+=$$PWD/lib*.a   其中,include目录下包含两个头文件,*_global.h和*.h。2、在引......
  • postgresql/lightdb PL/pgSQL return setof和TABLE的区别及动态SQL执行
    在pg中,广泛的使用了表函数代替视图,返回集合有两种定义,setof和table。他们的区别在于table明确定义了字段名和类型,如下:CREATEFUNCTIONevents_by_type_1(text)RETURNSTABL......
  • 代码随想录第五十七天 | 动态规划
    今天是第五十七天,也是动态规划的最后一天 647.回文子串 classSolution{publicintcountSubstrings(Strings){intn=s.length();i......
  • 动态规划
    动态规划讨论框架#自顶向下递归的动态规划defdp(状态1,状态2,...):for选择in所有可能的选择:#此时的状态已经因为做了选择而改变result......
  • 静态和动态代理模式
    代理模式,也称委托模式,是结构型设计模式之一,何为代理呢?在日常生活中就比如叫朋友替你拿个快递,叫朋友替你做一下作业,叫朋友替你买点东西等等,这个朋友就是你的代理,你把事情委......
  • 使用 udev 高效、动态地管理 Linux 设备文件(转载)--3
    udev的简单规则:清单10.产生网卡设备文件的规则SUBSYSTEM=="net",SYSFS{address}=="AA:BB:CC:DD:EE:FF",NAME="public_NIC"该规则表示:如果存在设备的子系统为net,并且......
  • Android插件化动态加载APK
    什么是插件化动态加载apk?支付宝是万能的,既可以淘票票看电影,又可以买车票,还可以开共享单车,这些都是支付宝的开发人员开发维护的么?显然不是,那么他是怎么做到的呢?是使用了动态......