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


相关推荐

  • 语音合成技术_ai语音合成软件免费的

    语音合成技术_ai语音合成软件免费的语音合成技术原理语音合成(texttospeech),简称TTS。将文字转化为语音的一种技术,类似于人类的嘴巴,通过不同的音色说出想表达的内容。将计算机自己产生的、或外部输入的文字信息转变为可以听得懂的、流利的汉语口语输出的技术。TTS的基本组成:(1)文本分析对输入文本进行语言学分析(主要模拟人对自然语言的理解过程),逐句进行词汇的、语法的和语义的分析,以确定句子的低层结构和每个字的音素的组成,包括文本的断句、字词切分、多音字的处理、数字的处理、缩略语的处理等。使计算机对输入的文本能完全理解,

    2022年10月21日
  • Spring容器的启动流程

    Spring容器的启动流程

    2021年4月10日
  • 操作系统栈溢出检測之ucosII篇

    操作系统栈溢出检測之ucosII篇

    2022年1月25日
  • 【16】进大厂必须掌握的面试题-100个python面试

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 我们整理了Python面试的主要问题清单,分为7个部分: 基本面试问题 OOPS面试问题 基本的Python程序 P…

    2021年6月23日
  • ‘builtin_function_or_method’ object is not subscriptable 错误

    ‘builtin_function_or_method’ object is not subscriptable 错误环境:Numpy问题:数组初始化报错错误❌:a=np.array[1,2,3,4,5,6,7,8,9,10]正确✅:a=np.array([1,2,3,4,5,6,7,8,9,10])这个问题一般是问题行内有圆括号缺失或者方括号的缺失。…

    2022年10月26日
  • linux网络随机ip发包工具,三款常用IP发包工具介绍

    linux网络随机ip发包工具,三款常用IP发包工具介绍1.简介在从事网络产品尤其是网络安全产品开发时,我们一直面临着一个问题,就是对产品的TCP/IP协议栈进行稳定性或安全性测试,确保开发产品在遇到各种不规则的错误的IP包时仍可正常稳定高效地工作,我们知道,在正常的网络环境中,很难产生错误的IP包,也很难产生我们想要的错误的IP包,为此,要完成对产品的测试,我们必须自己来制造各种各样错误的IP包,本篇的目的就是介绍如何利用各种发包工具来制…

    2022年9月6日

发表回复

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

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