zoukankan      html  css  js  c++  java
  • 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
    
     思路:把值放入map中,遍历值,并判断另一个组合数是否在map中即可。
    JAVA CODE
    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        Map<Integer,Integer> map = new HashMap<>();
        int key = 0;
        public boolean findTarget(TreeNode root, int k) {
            // Queue<TreeNode> queue = new ArrayDeque<>();
            // queue.offer(root);
            // while(!queue.isEmpty()){
            //     root = 
            //     if()
            // }
            find(root);
            for (Integer value : map.values()) {
                if(value*2!=k&&map.containsValue(k - value.intValue()))
                    return true;
            }
            return false;
        }
        void find(TreeNode rr){
             if(rr != null){
             find(rr.left);
             map.put(new Integer(key++), new Integer(rr.val));
             find(rr.right);
            }
        }    
    }
  • 相关阅读:
    正则表达式(四)--文本换行分割
    java加密类型和算法名称
    记事本记录日志
    DNS
    jstl--c:choose标签
    csv文本编辑引号问题
    JDBC----ReflectionUtils
    Jsp
    计算机网络 编程 总结:
    N颗骰子的问题
  • 原文地址:https://www.cnblogs.com/baichangfu/p/7487926.html
Copyright © 2011-2022 走看看