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