资讯专栏INFORMATION COLUMN

[LeetCode] 663. Equal Tree Partition

coordinate35 / 1361人阅读

Problem

Given a binary tree with n nodes, your task is to check if it"s possible to partition the tree to two trees which have the equal sum of values after removing exactly one edge on the original tree.

Example 1:

Input:     
    5
   / 
  10 10
    /  
   2   3

Output: True
Explanation: 
    5
   / 
  10
      
Sum: 15

   10
  /  
 2    3

Sum: 15

Example 2:

Input:     
    1
   / 
  2  10
    /  
   2   20

Output: False
Explanation: You can"t split the tree into two trees with equal sum after removing exactly one edge on the tree.

Note:
The range of tree node value is in the range of [-100000, 100000].
1 <= n <= 10000

Solution
class Solution {
    Map map = new HashMap<>();
    public boolean checkEqualTree(TreeNode root) {
        if (root == null) return false;
        int total = getTotal(root);
        if (total%2 != 0) return false;
        if (total/2 == 0) return map.getOrDefault(total/2, 0) > 1;
        return map.containsKey(total/2);
    }
    private int getTotal(TreeNode root) {
        if (root == null) return 0;
        int total = root.val+getTotal(root.left)+getTotal(root.right);
        map.put(total, map.getOrDefault(total, 0)+1);
        return total;
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72360.html

相关文章

  • [Leetcode - Dynamic Programming] Partition Equal S

    摘要:背包问题假设有个宝石,只有一个容量为的背包,且第个宝石所对应的重量和价值为和求装哪些宝石可以获得最大的价值收益思路我们将个宝石进行编号,寻找的状态和状态转移方程。我们用表示将前个宝石装到剩余容量为的背包中,那么久很容易得到状态转移方程了。 Partition Equal Subset Sum Given a non-empty array containing only posi...

    qpal 评论0 收藏0
  • leetcode416. Partition Equal Subset Sum

    摘要:题目要求假设有一个全为正整数的非空数组,将其中的数字分为两部分,确保两部分数字的和相等。而这里的问题等价于,有个物品,每个物品承重为,问如何挑选物品,使得背包的承重搞好为所有物品重量和的一般。 题目要求 Given a non-empty array containing only positive integers, find if the array can be partitio...

    Caicloud 评论0 收藏0
  • [LeetCode] 698. Partition to K Equal Sum Subsets

    Problem Given an array of integers nums and a positive integer k, find whether its possible to divide this array into k non-empty subsets whose sums are all equal. Example 1:Input: nums = [4, 3, 2, 3,...

    kuangcaibao 评论0 收藏0
  • [LeetCode] 416. Partition Equal Subset Sum

    Problem Given a non-empty array containing only positive integers, find if the array can be partitioned into two subsets such that the sum of elements in both subsets is equal. Note:Each of the array ...

    makeFoxPlay 评论0 收藏0
  • leetcode 416 Partition Equal Subset Sum

    摘要:如果是奇数的话,那一定是不满足条件的,可以直接返回。如果是偶数,将除获得我们要求的一个子数组元素的和。如何暂存我们计算的中间结果呢声明一个长度为的布尔值数组。每个元素的布尔值代表着,数组中是否存在满足加和为的元素序列。 题目详情 Given a non-empty array containing only positive integers, find if the array ca...

    jsummer 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<