• 【leetcode】1214.Two Sum BSTs


    题目如下:

    Given two binary search trees, return True if and only if there is a node in the first tree and a node in the second tree whose values sum up to a given integer target.

    Example 1:

    Input: root1 = [2,1,4], root2 = [1,0,3], target = 5
    Output: true
    Explanation: 2 and 3 sum up to 5.
    

    Example 2:

    Input: root1 = [0,-10,10], root2 = [5,1,7,0,2], target = 18
    Output: false

    Note:

    1. Each tree has at most 5000 nodes.
    2. -10^9 <= target, node.val <= 10^9

    解题思路:我用的是最直接的方法,把两棵树的节点的值分别存到两个字典中,然后遍历字典,看看能不能组成target。

    代码如下:

    # 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 twoSumBSTs(self, root1, root2, target):
            """
            :type root1: TreeNode
            :type root2: TreeNode
            :type target: int
            :rtype: bool
            """
            dic1 = {}
            dic2 = {}
            def recursive(node,dic):
                if node != None:
                    dic[node.val] = 1
                if node.left != None:
                    recursive(node.left,dic)
                if node.right != None:
                    recursive(node.right, dic)
            recursive(root1,dic1)
            recursive(root2,dic2)
            for val in dic1.iterkeys():
                if target - val in dic2:
                    return True
            return False
  • 相关阅读:
    socket选项设置
    shell 备忘录
    VIM中cscope和tags数据库的添加
    MFC程序设计中的BeginPaint/EndPaint和GetDC/ReleaseDC的使用
    shell 命令行参数解析
    do{...}while(0)用法总结
    0长度数组的使用
    在线帮助文档
    GCC编译器帮助文档
    几款优秀的Linux基准测试工具
  • 原文地址:https://www.cnblogs.com/seyjs/p/11629275.html
Copyright © 2020-2023  润新知