LeetCode88|两数之和IV-输入BST
时间:2022-07-26
本文章向大家介绍LeetCode88|两数之和IV-输入BST,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1,问题简述
给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。
2,示例
案例 1:
输入:
5
/
3 6
/
2 4 7
Target = 9
输出: True
案例 2:
输入:
5
/
3 6
/
2 4 7
Target = 28
输出: False
3,题解思路
基于二叉树的中序遍历和双指针的思路进行求解
4,题解程序
import java.util.ArrayList;
import java.util.List;
public class FindTargetTest {
private static List<Integer> list = new ArrayList<>();
public static void main(String[] args) {
TreeNode t1 = new TreeNode(5);
TreeNode t2 = new TreeNode(3);
TreeNode t3 = new TreeNode(6);
TreeNode t4 = new TreeNode(2);
TreeNode t5 = new TreeNode(4);
TreeNode t6 = new TreeNode(7);
t1.left = t2;
t1.right = t3;
t2.left = t4;
t2.right = t5;
t3.right = t6;
int k = 9;
boolean target = findTarget(t1, k);
System.out.println("target = " + target);
}
public static boolean findTarget(TreeNode root, int k) {
if (root == null) {
return false;
}
inOrder(root);
int i = 0;
int j = list.size() - 1;
while (i < j) {
Integer left = list.get(i);
Integer right = list.get(j);
if (left + right == k) {
return true;
} else if (left + right > k) {
j--;
} else {
i++;
}
}
return false;
}
private static void inOrder(TreeNode root) {
if (root == null) {
return;
}
if (root.left != null) {
inOrder(root.left);
}
list.add(root.val);
if (root.right != null) {
inOrder(root.right);
}
}
}
5,题解程序图片版
6,总结
目前自己输出的内容是第88道,我的计划是暂时输出100道题解,这就是自己暂时的计划吧,对于我自己来说也是比较有意义的一步,有时候在想,慢慢输出,才是自己独特的地方
- 代码注入技术Process Doppelgänging利用介绍
- 安卓手机如何玩转动作手势检测?有TensorFlow就够了,附实用教程
- 网秦更名凌动智行 域名nq.com惹关注
- 机器人索菲亚:有学习创造力、同理心和同情心
- 数控宏程序的编程及应用
- Linux常用软件安装总结
- 区块链技术到底是什么?为什么连国家都写入了“十三五规划”当中
- 使用JavaScript开发一个自修改代码
- 你适合从事数据分析吗?
- 使用VBA创建Access数据表
- 新时代已经来临,你做好准备了吗?
- Python自学笔记——多线程微信文章爬取
- 习近平要求加快这项技术发展 与你关系很密切!
- 趴比库获数百万元融资 域名pabiku.com给力十足
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python实现npy格式文件转换为txt文件操作
- 从0开始打造UI框架:动态化框架Scrollview物理学算法解析
- 基于Keras的格式化输出Loss实现方式
- PHP信号处理机制的操作代码讲解
- php防止表单重复提交实例讲解
- Python实现封装打包自己写的代码,被python import
- 创建一个 Serverless 应用,真的没有这么难!
- PHP使用mongoclient简单操作mongodb数据库示例
- 基于TensorFlow的CNN实现Mnist手写数字识别
- django rest framework 自定义返回方式
- PHP+Ajax实现的检测用户名功能简单示例
- Yii框架学习笔记之session与cookie简单操作示例
- Ajax+Jpgraph实现的动态折线图功能示例
- Python闭包及装饰器运行原理解析
- Django中Q查询及Q()对象 F查询及F()对象用法