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道题解,这就是自己暂时的计划吧,对于我自己来说也是比较有意义的一步,有时候在想,慢慢输出,才是自己独特的地方
- 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 数组属性和方法
- 一天一大 leet(两数之和 II - 输入有序数组)难度:简单-Day20200720
- 一天一大 leet(分割数组的最大值)难度:困难-Day20200725
- 一天一大 leet(矩阵中的最长递增路径)难度:困难-Day20200726
- 一天一大 lee(克隆图)难度:中等-Day20200812
- 一天一大 lee(有效的括号)难度:简单-Day20200814
- 一天一大 leet(判断子序列)难度:简单-Day20200727
- 一天一大 leet(寻宝)难度:困难-Day20200729
- LeetCode刷题记录(easy难度21-40题)
- 一天一大 lee(移除盒子)难度:困难-Day20200815
- LeetCode刷题记录(easy难度1-20题)
- 改变 Python 中线程执行顺序的方法
- 一天一大 leet(整数拆分)难度:中等-Day20200730
- iOS客户端启动速度优化实践
- 一天一大 leet(魔术索引)难度:简单-Day20200731
- 一天一大 lee(回文对)难度:困难-Day20200806