LeetCode 653. 两数之和 IV - 输入 BST(二叉搜索树迭代器双指针)
文章目录
- 1. 题目
- 2. 解题
1. 题目
给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。
案例 1:
输入: 5/ \3 6/ \ \
2 4 7Target = 9
输出: True案例 2:
输入: 5/ \3 6/ \ \
2 4 7Target = 28
输出: False
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum-iv-input-is-a-bst
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 创建二叉搜索树的正向和反向迭代器(中序是排好序的),一个从前面开始,一个从后面开始
- 双指针逼近给定的数即可
相关参考:LeetCode 173. 二叉搜索树迭代器(中序遍历)
class Solution {TreeNode *begin, *end, *temp;stack<TreeNode*> s1, s2;
public:bool findTarget(TreeNode* root, int k) {if(root == NULL)return false;begin = end = root;TreeNode *i = next(), *j = prev();while(i != j){if(i->val+j->val > k)j = prev();//和大了,j减小else if(i->val+j->val < k)i = next();//和小了,i增大else//if(i->val+j->val == k)return true;}return false;}TreeNode* next()//正向迭代器,从最小的开始{while(begin){s1.push(begin);begin = begin->left;}temp = s1.top();s1.pop();begin = temp->right;return temp;}TreeNode* prev()//反向迭代器,从最大的开始{while(end){s2.push(end);end = end->right;}temp = s2.top();s2.pop();end = temp->left;return temp;}
};
LeetCode 653. 两数之和 IV - 输入 BST(二叉搜索树迭代器双指针)相关推荐
- 力扣题目——653. 两数之和 IV - 输入 BST
注:本文的实现思路主要是基于JS(JavaScript),涉及到的一些函数都是JS中的自带函数 题目描述 给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给 ...
- 两数之和 IV - 输入 BST
两数之和 IV - 输入 BST 题目 两数之和 IV - 输入 BST(力扣:653) 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. ...
- 【每日一算法】两数之和 IV - 输入 BST
微信改版,加星标不迷路! 每日一算法-两数之和IV-输入BST 作者:阿广 阅读目录 1 题目 2 解析 1 题目 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目 ...
- LeetCode(653)——两数之和 IV - 输入 BST(JavaScript)
给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. 示例1: 输入: 输出: True 示例2: 输入: 输出: False /*** De ...
- LeetCode简单题之两数之和 IV - 输入 BST
题目 给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. 示例 1: 输入: root = [5,3,6,2,4,null, ...
- [LeetCode]653.两数之和IV-输入BST
文章目录 题目描述 算法实现 题目描述 难度:简单 算法实现 /*** Definition for a binary tree node.* public class TreeNode {* int ...
- C/C++描述 LeetCode 167. 两数之和 II - 输入有序数组
C/C++描述 LeetCode 167. 两数之和 II - 输入有序数组 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在 ...
- leetcode(167)两数之和 II - 输入有序数组
两数之和 II - 输入有序数组 给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target . 函数应该以长度为 2 的整数数组的形式返回这两 ...
- C#LeetCode刷题之#653-两数之和 IV - 输入 BST(Two Sum IV - Input is a BST)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4098 访问. 给定一个二叉搜索树和一个目标结果,如果 BST 中 ...
最新文章
- Docker基本使用命令
- 结合不同的模型进行集成学习
- 区块链BaaS云服务(4)三星 Nexledger
- Java 虚拟机诊断利器
- clickhouse物化视图优缺点_ClickHouse 适用场景
- jQuery如何选择表格每行中的第三列?
- html溢出左右滚动,html-选项卡溢出时水平滚动
- redis windows安装
- 计算机辅助设计与制造专业课程,《计算机辅助设计与制造》课程实验指导书
- Packet for query is too large (12164278 > 4194304). You can change this value
- 样式处理——去除无用样式
- 软件中反跟踪技术和软件调试
- 1496.数括号法求广义表深度
- 一张图看明白金融数据架构
- suitecrm查询功能去掉统配符%
- LIS系统和医院HIS系统的对接方案
- word在使用Endnote时变得非常卡解决办法
- 内盘外盘新手看热闹,老手在内盘外盘看门道
- sqlmap安装配置教程
- 计算机键盘指示灯不亮也不启动不了机,电脑开机时滴滴响 开不了机,显示器显示无信号,键盘灯不亮...
热门文章
- Halcon中OCR的实现及关键函数解析
- Android为spinner设置适配器,Android Spinner与适配器模式详解及实例代码
- 能设值多个rowkey吗_顶楼送了露台,悄悄搭建阳光房,偏偏我家露台多个帽子,能拆吗?...
- java程序源代码如何保存到桌面_如何编写JAVA小白第一个程序
- java公钥加密私钥解密过程_GPG加密解密过程
- github生成SSH公钥
- Delphi XE7的Splash 功能
- kafka Failed to send messages after 3 tries 问题解决
- BZOJ 1452 [JSOI2009] Count
- Silverlight 3.0 Isolated Storage 独立存储空间