• Interview-Largest independent set in binary tree.


    BT(binary tree), want to find the LIS(largest independent set) of the BT. LIS: if the current node is in the set, then its children should not be in the set. So that the set has the largest number of nodes.

    Analysis:

    Recursion method. Return the LIS of current root. Argument include whether the father of current root is in the LIS.

    1. Father of root is not in LIS, then we have two choice:

      1.1 current root in LIS, then we recursively get LIS(root, father not in) =  LIS(root.left, root in LIS) + LIS(root.right, root in LIS) + 1.

      1.2. current root not in LIS, then we recursively get LIS(root,father not in) = LIS(root.left, root not in) +LIS(root.right, root not in).

      we then return the larger one.

    2. Father of root is in LIS, then we only have on choice:

      current root not in LIS, then we recursively get LIS(root,father not in) = LIS(root.left, root not in) +LIS(root.right, root not in).

    NOTE: we notice that this recursive method has a lot of repeated calculation. we can use memorized search.

    Return: {LIS(root in), LIS(root not in)}.

    For each current root, we calculate {LIS{root.left in), LIS(root.left not in)} and {LIS{root.right in), LIS(root.right not in)}

    Then we have LIS(root in) = Lis(root.left not in)+Lis(root.right not in)+1.

    LIS(root not in) = max{LIS{root.left in), LIS(root.left not in)} + max{LIS{root.right in), LIS(root.right not in)}

  • 相关阅读:
    win 10安装 wamp 丢失msvcr110.dll 解决办法
    技巧——快读快写
    考前一些复习东东
    2019.11月4日模拟赛(早)
    2019 年 10 月训练赛(10.30早)
    2019 年 10 月训练赛(10.30晚)
    NOIP 鸡王争霸赛
    2019 10.3模拟
    CSP考纲及高精度计算
    CCF 全国信息学奥林匹克联赛复赛模拟
  • 原文地址:https://www.cnblogs.com/lishiblog/p/4181536.html
Copyright © 2020-2023  润新知