• 337. House Robber III——树的题目几乎都是BFS、DFS,要么递归要么循环


    The thief has found himself a new place for his thievery again. There is only one entrance to this area, called the "root." Besides the root, each house has one and only one parent house. After a tour, the smart thief realized that "all houses in this place forms a binary tree". It will automatically contact the police if two directly-linked houses were broken into on the same night.

    Determine the maximum amount of money the thief can rob tonight without alerting the police.

    Example 1:

         3
        / 
       2   3
            
         3   1
    

    Maximum amount of money the thief can rob = 3 + 3 + 1 = 7.

    Example 2:

         3
        / 
       4   5
      /     
     1   3   1
    

    Maximum amount of money the thief can rob = 4 + 5 = 9.

    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution(object):
        def rob(self, root):
            """
            :type root: TreeNode
            :rtype: int
            3 => 3
            3 => 3
           /
          2
            3
             
              3 =>3=max(3,3)
            3
           /   => 3+2=5=max(3, 2+3)
          2   3
         3
        / 
       2   3
            
         3    => 3+3=6=max(3+3,2+3)=max(3+node2,3 not choose, node2,3 choosed)
         1
        / 
       4   1
      /     
     1   1   5 => 4+5=9=max(3+3+1+1,4+5)=9 
            """
            return max(self.rob_helper(root))
        
        def rob_helper(self, root):
            if root is None:
                return [0, 0]
            ans = [0]*2
            ans_left = self.rob_helper(root.left)
            ans_right = self.rob_helper(root.right)
            ans[0] = max(ans_left[0], ans_left[1]) + max(ans_right[0], ans_right[1])
            ans[1] = ans_left[0] + ans_right[0] + root.val
            return ans        
  • 相关阅读:
    el-upload怎么拿到上传的图片的base64格式
    浮动到表格中某一行,根据改行信息高亮某区域文字,并设置对应滚动高度,使高亮文字出现在当前视野
    IE浏览器报Promise未定义的错误
    el-input为数字时验证问题
    Tomcat
    redis
    JSON
    JQuery基础
    JQuery高级
    Git学习(二)
  • 原文地址:https://www.cnblogs.com/bonelee/p/6220463.html
Copyright © 2020-2023  润新知