两数之和 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎样使用cookie登录自己的账号

    在这之前,不管是做测试还是挖漏洞总会遇到这种问题做测试的时候测试项里面有一个会话标识未更新,这种漏洞说白了就是在退出个人账户的时候没有及时的清除cookie,从而让别人利用你的cookie再次登录你的账户,然后测试的时候客户就让测试如何使用cookie登录在挖漏洞的时候一般xss都需要打cookie然后伪造别人的身份登录,其实也是使用打到的cookie登录在这之前我没深入的理解这块,现…

    2022年4月8日
    80
  • Win10共享打印机提示0x0000011b错误代码的解决方法[通俗易懂]

    Win10共享打印机提示0x0000011b错误代码的解决方法[通俗易懂]首先是在共享打印机的主机Windows是更新kb5005565这个补丁所导致的,那么我们在控制面板-卸载程序里卸载掉2021-09-15Windows更新的补丁KB5005565后重启电脑就好了。然后禁止Win10更新操作方法:鼠标右键“win”图标在弹出的菜单栏中选择“运行”选项,打开运行窗口后输入“services.msc”, 在打开的窗口中找到“windowsUpdate”启用选项,并双击打开, 在弹出的小窗口中的启动类型选项处点击选择“禁用”,点击“确定”另外win11出现的错误代.

    2025年8月26日
    17
  • docker的常用命令汇总_Docker命令

    docker的常用命令汇总_Docker命令docker常用命令合集文章目录docker常用命令合集一、docker概论二、Docker的应用场景2.1Docker的优点三、Docker架构四、docker安装4.1安装依赖包4.2设置阿里云镜像源4.3安装docker-ce4.4镜像加速4.5网络优化五、docker镜像使用六、docker容器的使用七、创建镜像八、docker的数据管理九、本地私有仓库建立十、容器互联十一、总结一、docker概论Docker是一个开源的应用容器引擎,基于Go语言并遵从Apa

    2022年9月15日
    2
  • 【HDOJ】2065 “红色病毒”问题

    【HDOJ】2065 “红色病毒”问题

    2021年8月29日
    59
  • PS2手柄遥控控制灯开关(arduino)

    PS2手柄遥控控制灯开关(arduino)PS2手柄遥控控制灯开关(arduino)使用的材料arduino板子:ps2遥控手柄;一个5V供电的LDE;连线首先按照遥控手柄底座上的英文,你会发现一共有六根线,分别是GND,VCC,DAT,CMD,CS,CL。GND连接arduino板子上的gnd,vcc连接5V或者3.3v,其他四根线可以按照代码中的引脚设置连接,也可以自己更改。代码部分#include<PS…

    2022年6月3日
    88
  • HttpClient使用详解

    HttpClient使用详解Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入。一、简介HttpClient是ApacheJakartaCommon下的子项目,用来提供高效的

    2022年7月22日
    10

发表回复

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

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