zoukankan      html  css  js  c++  java
  • 337. House Robber III

    二刷吧。。不知道为什么house robbery系列我找不到笔记,不过印象中做了好几次了。

    不是很难,用的post-order做bottom-up的运算。

    对于一个Node来说,有2种情况,一种是选(自己+下下层);一种是选左右children.

    其实就是选自己和不选自己的区别。其实更像是dfs的题而不是DP的题。

    Time: O(n)
    Space: O(lgn)

    public class Solution {
        public int rob(TreeNode root) {
            if (root == null) return 0;
            
            int leftLevel = 0;
            int leftSubLevel = 0;
            if (root.left != null) {
                leftLevel = rob(root.left);
                leftSubLevel = rob(root.left.left) + rob(root.left.right);
            } 
            
            int rightLevel = 0;
            int rightSubLevel = 0;
            if (root.right != null) {
                rightLevel = rob(root.right);
                rightSubLevel = rob(root.right.left) + rob(root.right.right);
            }
            
            return Math.max((root.val + leftSubLevel + rightSubLevel), leftLevel + rightLevel);
        }
    }
    
  • 相关阅读:
    excel 合并
    百度百科-人物数据采集
    list 元素个数*10 生成一个新的list
    mongo 备份脚本
    python excel合并脚本
    java多线程之消费生产模型
    Lasso回归
    岭回归
    普通最小二乘法
    常问的MySQL面试题整理
  • 原文地址:https://www.cnblogs.com/reboot329/p/6127932.html
Copyright © 2011-2022 走看看