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


相关推荐

  • 怎样基于android4.4.2的源代码和android-4.3.1_r1的驱动编译I9250的ROM

    怎样基于android4.4.2的源代码和android-4.3.1_r1的驱动编译I9250的ROM

    2021年11月16日
    33
  • css自动换行属性与保留空白属性冲突_css换行样式

    css自动换行属性与保留空白属性冲突_css换行样式word-break属性规定自动换行的处理方法。提示:通过使用word-break属性,可以让浏览器实现在任意位置的换行。所有主流浏览器都支持word-break属性。语法:word-break:normal|break-all|keep-all;normal使用浏览器默认的换行规则。break-all允许在单词内换行。keep-all只能在半角空格或连字符处换行。word-break:break-all所有的都换行,右侧换行没有空隙。word-wrap属性允许

    2025年6月27日
    0
  • linux服务器维护教程_服务器验收注意事项

    linux服务器维护教程_服务器验收注意事项#######本节介绍有关服务器管理和维护过程中的一些注意事项,都是笔者的经验之谈,相信对新手会有一定的启发和帮助。很多初学者接触Linux时间不长,还未完整地学习一遍Linux,理解本节内

    2022年8月1日
    5
  • linux下载安装yum(ubuntu安装yum工具)

    自动搜索最快镜像插件:yuminstallyum-fastestmirror安装yum图形窗口插件:yuminstallyumex1、安装yuminstall全部安装yuminstallpackage1安装指定的安装包package1yumgroupinsallgroup1安装程序组group12、更新和升级yumupdate全部更新yumupdatepackage1更新指定程序包package1yumcheck-update

    2022年4月15日
    52
  • QT安装具体图解

    QT安装具体图解文章目录QT安装包下载Qt安装QT安装包下载我下载的版本是最新的5.14.2下载链接在下面,https://download.qt.io/archive/qt/5.14/5.14.2/找到Windows版本下载(ps:如果需要下载其他版本的话点击父目录就可以去选择不同版本了,建议5.9以上。)(ps:Linux上的Qt安装日后会更新,见谅)Qt安装1.双击下载好的安装包,出现界面点击next2.根据个人情况选择填写信息,有账号就登陆,没有就注册一个(注意:注册时候的密码需要英文大写,

    2022年5月17日
    47
  • SVG图像技术摘要

    SVG图像技术摘要

    2022年1月9日
    46

发表回复

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

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