【两数之和 IV - 输入 BST(653-java)】
2023-09-27 14:29:28 时间
两数之和 IV - 输入 BST(653-java)
给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。
示例 1:
输入: root = [5,3,6,2,4,null,7], k = 9
输出: true
public class LC260_653_findTarget {
//二叉树
static List<Integer> tmp = new ArrayList<>();
public static boolean findTarget(TreeNode root, int k) {
dfs(root);
int left = 0, right = tmp.size() - 1;
while (left < right) {
if ((tmp.get(left) + tmp.get(right)) == k) {
return true;
} else if ((tmp.get(left) + tmp.get(right)) > k) {
right--;
} else if ((tmp.get(left) + tmp.get(right)) < k) {
left++;
}
}
return false;
}
private static void dfs(TreeNode root) {
if (root == null) {
return;
}
dfs(root.left);
tmp.add(root.val);
dfs(root.right);
}
public static void main(String[] args) {
boolean target = findTarget(TreeNode.createTree(), 3);
System.out.println(target);
}
}
相关文章
- 8.Java 加解密技术系列之 PBE
- Java高并发核心编程(卷1):NIO、Netty、Redis、ZooKeeper
- Java Scanner 类,获取用户输入的值
- hive启动时 Terminal initialization failed; falling back to unsupported java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
- C# vs Java
- Java 获取命令行输入数据(命令行输入,Scanner类)
- Java代码优化的30个小技巧
- 第41节:Java当中的类集框架
- java 怎么实现接收控制台输入?
- 《21天学通Java(第7版)》—— 2.10 认证练习
- 《Java程序员面试秘笈》—— 面试题12 如何执行mian()方法
- Java用Scanner类获取用户输入
- 【毕业设计_课程设计】基于Java web的物流配送管理系统
- java 在控制台上输入密码时,密码不显示在控制台上
- java控制台等待输入
- Java里的IO基础知识笔记:IO流、字节流/字符流、File对象读取、输入流/输出流(使用过后及时关闭、缓冲区)、Filter模式、ZIP操作、读取classpath资源的意义、序列化/反序列化、Reader/Writer、使用Files工具类及其局限性
- ccf-csp 图像旋转201503-1 Java输入优化
- 【JAVA】输入一个链表,输出该链表中倒数第k个结点。
- 【JAVA】输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
- Java泛型编程与多态、重载的同与不同
- 【Java】Cron表达式
- 【java养成】:I/O(输入/输出操作)——>File类、字节流、字符流
- Java正则表达式 Pattern 类的用法
- 【Java/Spring】Spring的配置问题,IDEA报错“No mapping found for HTTP request with URI […] in DispatcherServlet”
- Java 用Maven创建的项目 创建包发现怎么建都在同一级
- Java //PP2.6 编写一个应用程序,将英里转换为千米(1英里等于1.60935千米)。以浮点数类型读取用户输入的英里数
- 9:关于Maven工程的文件标识(定义java文件源码,资源文件)
- java数据的输入和输出
- 通过环境变量修改java版本不生效