java数据结构与算法刷题-----LeetCode653. 两数之和 IV - 输入二叉搜索树

展会客流统计的客流统计系统,WiFi客流每时每客 一般展会的举行时间都在3-7天之间,展会作为市场部门一项重要工作,一直以来没有一项有效的工具能够提供数据支持。 展会最重要的是通过活动和产品来吸引参展者的参观,如何统计展会期间的客流量呢?如何通过将数据转化成为活动数据的支撑呢? 目前成熟的解决方案有,视频客流统计、WiFi客流统计、红外线客流统计等方式。由于展会通常的时间都比较短,视频、红外线客流统计采购及安装价格都比较高,需 阅读详情
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.youkuaiyun.com/grd_java/article/details/123063846

在这里插入图片描述

1. 前序遍历加hash

解题思路:时间复杂度O(n),空间复杂度O(n)
  1. 使用hash表存储每个结点值
  2. 每次遍历新结点时,查找hash表是否包含一个数a,和当前结点的值b能组成目标值target
代码:使用编程语言自带的hash表,因为健壮性考虑,这些处理会需要额外的时间开销,所以耗时会多一点

在这里插入图片描述

class Solution {
    Set<Integer> set = new HashSet<Integer>();

    public boolean findTarget(TreeNode root, int k) {
        if (root == null) return false;
        //如果hash表中包含k - val的差值,则说明hash表中有val的补数,说明有两个值符合条件
        if (set.contains(k - root.val)) return true;
        //否则将val放入hash表
        set.add(root.val);
        //然后遍历左子树,最后右子树
        return findTarget(root.left, k) || findTarget(root.right, k);
    }
}

2. 中序遍历+双指针

解题思路:时间复杂度O(n),空间复杂度O(n)
  1. 因为是二叉搜索树,中序遍历结果正好是一个有序的升序序列
  2. 先获取中序遍历结果,然后使用双指针找目标值
  3. 左右两边之和a,如果a小于目标值target,则left++,如果a大于target,则right–
代码

在这里插入图片描述

class Solution {
    public boolean findTarget(TreeNode root, int k) {
        ArrayList<Integer> list = new ArrayList<Integer>();//保存中序遍历结果
        dfs(root,list);//中序遍历
        //双指针,左右两边依次移动找k
        int left = 0,right = list.size()-1;
        while(left<right){
            int num = list.get(left)+list.get(right);
            if(num == k) return true;
            else if(num < k)left++;//如果左右之和<k,则值太小,需要增大,left++
            else right--;//否则说明num太大,需要缩小,right--
        }
        return false;
    }
    public void dfs(TreeNode root , ArrayList<Integer> list){
        if(root == null) return;
        dfs(root.left,list);
        list.add(root.val);
        dfs(root.right,list);
    }
}
YOLOv8改进,YOLOv8添加DCNv3可变性卷积,无需编译 DCNv3在DCNv2版本上进行了改进,上一期我们在YOLOv8中添加了DCNv2,这一期我们将添加DCNv3,DCNv3代码详解可以参考链接:代码详解——可变形卷积(DCNv3) 阅读详情

相关推荐

intel-VROC raid卡驱动 centos7.9

u盘进入系统,按e,在出现下面在quiet前面输入inst.dd initcall_blacklist=vmd_drv_init 后按Ctrl和x,开始引导。进入系统,按e,在出现下面在quiet前面输入inst.dd inicll_blacklist=vmd_drv_init 后按Ctrl和x,开始引导。驱动完成后,在输入 c 回车, 引导过程开始,进入安装界面。输入1 ,选择这个ISO驱动文件里的rpm包。输入1 ,选择这个ISO驱动文件里的rpm包。vi编辑 /etc/default/grub。

dacming的博客 4545

【LeetCode每日一题】——653.两数之和 IV - 输入二叉搜索树

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

IronmanJay 1002

SuperPoint + LightGlue实战:低纹理墙面重建保姆级教程(附完整代码)

本文提供了一份针对低纹理墙面三维重建的实战教程。通过详细解析SuperPoint与LightGlue的核心参数调优,指导读者如何有效提取并匹配低纹理目标的特征点,并结合COLMAP完成从稀疏到稠密的重建流程,最终实现高精度建模。

weixin_29034963的博客 224

leetcode:653. 两数之和 IV - 输入 BST

题目来源 653. 两数之和 IV - 输入 BST 题目描述 题目解析 使用 HashSet 最简单的方法就是遍历整棵树,找出所有可能的组合,判断是否存在和为 kk 的一对节点。现在在此基础上做一些改进。 如果存在两个元素之和为 kk,即 x+y=kx+y=k,并且已知 xx 是树上一个节点的值,则只需判断树上是否存在一个值为 yy 的节点,使得 y=k-xy=k−x。基于这种思想,在树的每个节点上遍历它的两棵子树(左子树和右子树),寻找另外一个匹配的数。在遍历过程中,将每个节点的值都放到一个 sets

OceanStar的博客 370

虚拟机VirtualBox下载与安装、安装Ubuntu超详细图文步骤,对一些配置问题也有所写。

自己使用过两款虚拟机,相较于VMware虚拟机来说,virtuabox虚拟机所占内存更小,只有几十兆,且完全开源不收费,里面的功能与VMware基本差不多(在日常开发、学习使用完全够用)。最主要的是,在博主自己使用VMware时经常出错,而virtualbox就更稳定一些,所以这篇是针对virtualbox的安装与一些细节部分。

l1015649309的博客 4万+

萤石云cs刷机解绑固件

萤石CS-C2C-32WFR刷机包,萤石CS-C6TC刷机包,萤石CS-C6H刷机包,萤石猫眼产品等等。萤石云摄像头固件修改,绑定手机号解绑,更换序列号教程。

海康威视技术支持 2万+

LeetCode 653. 两数之和 IV - 输入 BST(Two Sum IV - Input is a BST)

653. 两数之和 IV - 输入 BST 653. Two Sum IV - Input is a BST 题目描述 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 LeetCode653. Two Sum IV - Input is a BST简单 案例 1: 输入: 5 / \ 3 6 / \ \ 2...

weixin_30430169的博客 116

halcon3d点云补全方法

属于halcon实例中的内容,后面还接了一部分的匹配

Tianwen_running的博客 1232

力扣解法汇总653-两数之和 IV - 输入 BST

目录链接: 力扣编程题-解法汇总_分享+记录-优快云博客 GitHub同步题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 示例 1: 输入: root = [5,3,6,2,4,null,7], k = 9 输出: true 示例 2: 输入: root = [

分享+记录 1749

解锁RK平台黑科技:DPDK加速与硬件卸载实战

本文探讨了在RK平台上通过DPDK加速与硬件卸载技术构建高性能网络架构的方法。RK平台凭借强大的硬件性能为高并发网络处理提供基础,而DPDK通过用户态驱动、轮询机制等技术绕过内核瓶颈,显著提升数据包处理效率。硬件卸载则将校验和计算等任务交由专用硬件,释放CPU资源。实践案例显示,该方案可使网络吞吐量提升至理论极限,延迟降至5ms以下,CPU利用率降低40%。文章详细介绍了配置步骤、优化方法和常见问题解决方案,并展望了该技术在5G、车联网等新兴领域的应用前景。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1282

华为OD机考双机位C卷 - 员工派遣 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 员工派遣 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1035

Leetcode刷题java之653. 两数之和 IV - 输入 BST

执行结果: 通过 显示详情 执行用时 :10 ms, 在所有Java提交中击败了67.87%的用户 内存消耗 :47.2 MB, 在所有Java提交中击败了73.05%的用户 题目: 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 思路: 既然是二叉搜索树的话,我们可以利用中序遍历将内容从小到大存储到一个lis...

逆水行舟,不进则退 551

基于互联网的智能旧衣回收箱设计与实现

本文介绍了基于嵌入式系统的智能旧衣回收箱的设计与实现,涵盖了硬件设计、软件开发、图像识别、物联网连接等方面的内容。通过利用最新的技术,如图像识别、物联网和云计算,实现了智能、便捷的旧衣物回收系统。未来,随着技术的不断进步,智能回收系统将会在环保领域发挥更大的作用。

2201_76125393的博客 908

【Leetcode刷题第四天】653. 两数之和 IV - 输入 BST [JAVA]

【Leetcode刷题】653. 两数之和 IV - 输入 BST [JAVA] 题目描述: 给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 示例 1: 输入: root = [5,3,6,2,4,null,7], k = 9 输出: true 示例 2: 输入: root = [5,3,6,2,4,null,7], k = 28 输出: false 来源于:Leetcode 思路: 使用双指针与dfs遍历。 代码如下: c

m0_52338896的博客 849

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Leetcode刷题100天—653. 两数之和 IV - 输入 BST( 二叉树)—day35

前言: 作者:神的孩子在歌唱 大家好,我叫运智 653. 两数之和 IV - 输入 BST 难度简单275收藏分享切换为英文接收动态反馈 给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 示例 1: 输入: root = [5,3,6,2,4,null,7], k = 9 输出: true 示例 2: 输入: root = [5,3,6,2,4,null,7], k = 28 输出: false 示例 3: 输入:

智的博客 2019

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java实现 LeetCode 653 两数之和 IV - 输入 BST(递归,找差值)

653. 两数之和 IV - 输入 BST 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定...

5385

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

[LeetCode]653. 两数之和 IV - 输入 BST(java实现)

[LeetCode]653. 两数之和 IV - 输入 BST(java实现)1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结 1. 题目 2. 读题(需要重点注意的东西) 一般两数之和的问题,可以用数组来实现,将数据遍历到数组中,再判断数组中是否有两数之和等于k,即可判断。 使用中序遍历得到有序数组之后,再利用双指针对数组进行查找。但是应该注意到,这一题不能用分别在左右子树两部分来处理这种思想,因为两个待求的节点可能分别在左右子树

cloud的博客 204

力扣 653. 两数之和 IV 二叉树/binary-tree two-sum IV

前序遍历:先访问根节点,再遍历左子树和右子树。中序遍历:先遍历左子树,再访问根节点,最后遍历右子树。后序遍历:先遍历左子树,再遍历右子树,最后访问根节点。这些遍历方式的递归实现思路基本相同,区别在于访问根节点的时机不同。在实际应用中,可以根据需求选择不同的遍历方式。前中后是以 root 的节点为主视角,看什么时候被访问。

746

leetcode刷题记录

刷题过程记录

洪肥肥的博客 2063

leetcode - 653 - 两数之和 IV - 输入 BST - java版

文章目录题目代码 题目 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 案例 1: 输入: 5 / 3 6 / \ 2 4 7 Target = 9 输出: True 案例 2: 输入: 5 / 3 6 / \ 2 4 7 Target = 28 输出: False 代码 /* * @lc a...

lingle1的博客 376

Leetcode每日一题 653. 两数之和 IV - 输入 BST 树的遍历+哈希Set / 根据BST的中序遍历有序特性

📖本篇内容:Leetcode每日一题 653. 两数之和 IV - 输入 BST 树的遍历+哈希Set / 根据BST的中序遍历有序特性 📑 文章专栏:leetcode每日一题《打卡日常》 📆 最近更新:2022 年 3 月 19日 Leetcode每日一题 606. 根据二叉树创建字符串 DFS遍历二叉树的理解题 ⭐算法仓库:小付的算法之路——Alascanfu-algorithm.git.io 🙊个人简介:一只二本院校在读的大三程序猿,本着注重基础,打卡算法,分享技术作为个人的经验总结性的博文博.

Alascanfu的博客 840

LeetCode——653. 两数之和 IV - 输入 BST

题目描述: 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 案例 1: 案例 2: 代码如下: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right

FYPPPP的博客 285

653. 两数之和 IV - 输入 BST

给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 案例 1: 输入: 5 / \ 3 6 / \ \2 4 7 Target = 9 输出: True 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum-iv-input-is-a-...

weixin_30912051的博客 64

LeetCode-653. Two Sum IV - Input is a BST [C++][Java]

Given therootof a Binary Search Tree and a target numberk, returntrueif there exist two elements in the BST such that their sum is equal to the given target.

贫道绝缘子的博客 259

leetcode 653. 两数之和 IV - 输入 BST

leetcode 653. 两数之和 IV - 输入 BST

Jeremy__Liu的博客 670

Leetcode第653题:两数之和 IV - 输入 BST

1.题目 给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 示例 1: 输入: root = [5,3,6,2,4,null,7], k = 9 输出: true 示例 2: 输入: root = [5,3,6,2,4,null,7], k = 28 输出: false 提示: 二叉树的节点个数的范围是[1, 104]. -104<= Node.val <= 104 root为二叉搜索树 ...

zhangxl123liang的博客 422
上一篇: java数据结构与算法刷题-----LeetCode109. 有序链表转换二叉搜索树
下一篇: 板绘学习路线、技巧和日常练习-----PS必会技巧---持续补充
ydenergy_殷志鹏
博客等级 码龄7年 5886粉丝 543原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ydenergy_殷志鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值