zoukankan      html  css  js  c++  java
  • 653. 两数之和 IV

    给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。

    案例 1:

    输入:
    5
    /
    3 6
    /
    2 4 7

    Target = 9

    输出: True
     

    案例 2:

    输入:
    5
    /
    3 6
    /
    2 4 7

    Target = 28

    输出: False

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/two-sum-iv-input-is-a-bst

    二叉树前序遍历+双指针

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def findTarget(self, root: TreeNode, k: int) -> bool:
            def preorderTraversal(root):
                if not root:return []
                stack, res = [root], []
                while stack:
                    root = stack.pop()
                    if root:
                        res.append(root.val)
                        if root.right:
                            stack.append(root.right)
                        if root.left:
                            stack.append(root.left)
                return res
            node=preorderTraversal(root)
            n=len(node)
            if n<2:return False
            l=0
            r=n-1
            node.sort()
            while l<r:
                sum=node[l]+node[r]
                if sum<k:l+=1
                if sum>k:r-=1
                if sum==k:return True
            return False

     dfs

    class Solution:
        def findTarget(self, root, k):
            visited = set()
            return self.dfs(root, k, visited)
        
        def dfs(self, root, k, visited):
            if not root:
                return False
            if k - root.val in visited:
                return True
            visited.add(root.val)
            return self.dfs(root.left, k, visited) or self.dfs(root.right, k, visited)

  • 相关阅读:
    郊原的青草
    基本类型接口(二、EIMI)
    一个简单的委托
    基本类型泛型(二)
    基本类型可空值类型
    基本类型委托(二)
    类型的设计事件
    原码、补码和反码
    基本类型接口(一、您了解接口继承吗?)
    arcgis api for flex 开发入门(一)环境搭建<转>
  • 原文地址:https://www.cnblogs.com/xxxsans/p/13769898.html
Copyright © 2011-2022 走看看