zoukankan      html  css  js  c++  java
  • 653. Two Sum IV

    Given a Binary Search Tree and a target number, return true if there exist two elements in the BST such that their sum is equal to the given target.

    Example 1:

    Input: 
        5
       / 
      3   6
     /    
    2   4   7
    
    Target = 9
    
    Output: True
    

    Example 2:

    Input: 
        5
       / 
      3   6
     /    
    2   4   7
    
    Target = 28
    
    Output: False
    //Time: O(n), Space: O(n)   
    //开始以为BST用二分,后来发现这道题和二叉搜索树没啥关系,就是遍历一颗普通的二叉树
     public boolean findTarget(TreeNode root, int k) {
            if (root == null) {
                return false;
            }
            
            HashSet<Integer> set = new HashSet<Integer>();
            return dfs(root, k, set);
        }
        
        private boolean dfs(TreeNode root, int k, HashSet<Integer> set) {
            if (root == null) {
                return false;
            }
            
            if (set.contains(k - root.val)) {
                return true;
            }
            
            set.add(root.val);
            return dfs(root.left, k, set) || dfs(root.right, k, set);
        }
  • 相关阅读:
    P1280 尼克的任务
    P2286 [HNOI2004]宠物收养场
    筛法求素数
    拓扑排序
    观光旅游
    [USACO09OCT]热浪Heat Wave
    Java环境变量配置
    git 常用命令
    mysql-5.7安装、配置
    maven-java包管理工具-01
  • 原文地址:https://www.cnblogs.com/jessie2009/p/9771737.html
Copyright © 2011-2022 走看看