Two Sum IV
来源:互联网 发布:淘宝微淘关注店铺收藏 编辑:程序博客网 时间:2024/05/19 18:42
题目描述:
Given a Binary Search Tree and a target number, return true if there exist two elements in the BST such that their sum is equal to the given target.
Example 1:
Input: 5 / \ 3 6 / \ \2 4 7Target = 9Output: True
Example 2:
Input: 5 / \ 3 6 / \ \2 4 7Target = 28Output: False
分析:
直接在二叉树上进行搜索比较困难,可以先采用前序遍历将二叉树转换成有序数组,然后采用首位指针的方式搜索结果。
代码:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public boolean findTarget(TreeNode root, int k) { if(root == null){ return false; } List<Integer> result = BST2Array(root); if(result == null || result.size() <= 1){ return false; } // 首尾遍历有序数组 int i = 0; int j = result.size()-1; while (i < j){ int sum = result.get(i) + result.get(j); if(sum == k){ return true; } if(sum < k){ i++; }else { j--; } } return false; } private List<Integer> BST2Array(TreeNode root) { if(root == null) { return null; } // 前序遍历 List<Integer> result = new ArrayList<>(); List<Integer> left = BST2Array(root.left); List<Integer> right = BST2Array(root.right); if(left != null){ result.addAll(left); } result.add(root.val); if(right!= null){ result.addAll(right); } return result; }}
阅读全文
0 0
- 653. Two Sum IV
- 653. Two Sum IV
- 653. Two Sum IV
- Leetcode653. Two Sum IV
- Two Sum IV
- leetcode[Two Sum IV
- LeetCode Two Sum IV
- leetcode653. Two Sum IV
- 653. Two Sum IV
- Two Sum IV
- 653. Two Sum IV
- 653. Two Sum IV
- 653. Two Sum IV
- leetcode Two Sum IV
- LeetCode653. Two Sum IV
- LeetCode653. Two Sum IV
- Two Sum IV
- Two Sum (I ~ IV)
- py基础
- 人工智能是如何改变IT运维和DevOps的?
- Spring基础_在XML配置中引用JavaConfig<五>
- 【贪心+优先队列】51Nod 1053 最大M子段和 V2
- 15.10 差异编码
- Two Sum IV
- Android App 优化之消除卡顿
- virtualbox 5.2.0 ,debian9 安装超详细过程,看一次就懂
- 几道大数据面试题
- 轮训、长轮训、长连接
- [agc004f]Namori
- React Native 文件“launchPackager.command”无法执行,因为您没有正确的访问权限。
- 金蝶K3物料属性后台调整方法(自制/委外转外购)
- OpenCV学习笔记(30)练习 xml文件的写入