两数之和 IV – 输入 BST

两数之和 IV – 输入 BST两数之和IV-输入BST(力扣:653)给定一个二叉搜索树和一个目标结果,如果BST中存在两个元素且它们的和等于给定的目标结果,则返回true。

大家好,又见面了,我是你们的朋友全栈君。

两数之和 IV – 输入 BST


题目

两数之和 IV – 输入 BST(力扣:653)

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

分析

使用一个辅助HashSet存储已经遍历过的值,在之后遍历过程中,如果和-当前节点值=HashSet中的任意值,则代表已找到。

代码实现

    /**
     * 653. 两数之和 IV - 输入 BST
     * @param root
     * @param k
     * @return
     */
    public boolean findTarget(TreeNode root, int k) {
        if (root == null){
            return false;
        }
        HashSet<Integer> hashSet = new HashSet<>();
        return findTargetDfs(root, k, hashSet);
    }

    private boolean findTargetDfs(TreeNode root, int k, HashSet<Integer> hashSet){
        if (root == null){
            return false;
        }
        if (hashSet.contains(k - root.val)){
            return true;
        }
        hashSet.add(root.val);
        return findTargetDfs(root.left, k, hashSet) || findTargetDfs(root.right, k, hashSet);
    }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141879.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux镜像下载

    Linux镜像下载1.CentOSCentOS官网:https://www.centos.org/CentOS各个版本下载:https://www.centos.org/CentOS版本选择:1.DVD版:这个是常用版本,就是普通安装版了,推荐大家安装。里面包含大量的常用软件,大部分情况下安装时无需再在线下载,体积为4G左右。 2.Everything版:顾名思义,包含了所有…

    2022年4月4日
    56
  • Ajax 跨域,这应该是最全的解决方案了

    Ajax 跨域,这应该是最全的解决方案了

    2021年10月13日
    37
  • 编程思想_编程有必要给孩子学吗?

    编程思想_编程有必要给孩子学吗?编程思想

    2022年4月22日
    42
  • IntelliJ IDEA 可以使用中文了「建议收藏」

    IntelliJ IDEA 可以使用中文了「建议收藏」1.前言今天IntelliJIdea2020.1正式发布了!最大的一个亮点莫过于开始支持中文了。相信很多英语不好的同学已经期盼已久了。但是感觉登录界面感觉变丑了!建议把文章看完再去升级。2.汉化体验先来看看我的效果,首先要告诉你这是官方汉化包,并不是第三方!我大致看了一圈,个别还没有汉化完毕,可能没有找到合适的描述词汇吧,但是绝大部分已经完成了。这下很多同学可以更方便使…

    2022年6月14日
    130
  • 计算机中为什么会用补码运算符号_负数求补码

    计算机中为什么会用补码运算符号_负数求补码总所周知,计算机内部的所有数都是以二进制的形式存在的。而二进制在计算机里又有多种编码方式——原码、反码、补码等。而在这些编码方式里面用得最多的不是最简单、最直接的原码而是补码。这是为什么呢?想搞懂这个问题首先得明白什么是原码、反码以及补码,如果你对他们还不太了解,那就先看看我另一篇博客——原码、反码、补码其实很简单。如果你对他们已经很熟悉,那么我们继续往下看。A、B、C三种相似的东西,

    2022年9月16日
    0
  • idea控制台输出乱码

    idea控制台输出乱码

    2021年9月16日
    75

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号