653. Two Sum IV
来源:互联网 发布:九阴绝学护盾进阶数据 编辑:程序博客网 时间:2024/05/19 20:39
1、题目描述
输入一个BST和一个target,如果树上两元素之和等于target返回true,反之返回false。
2、思路
对BST进行中序遍历,得到一个升序序列。再按照two sum II的方法用two pointers思路求解。
Time Complexity: O(n)
, Space Complexity: O(n)
.
3、代码
bool findTarget(TreeNode* root, int k) { vector<int> nums; inorder(root, nums); for(int i = 0, j = nums.size()-1; i<j;){ if(nums[i] + nums[j] == k)return true; (nums[i] + nums[j] < k)? i++ : j--; } return false; } void inorder(TreeNode* root, vector<int>& nums){ if(root == NULL)return; inorder(root->left, nums); nums.push_back(root->val); inorder(root->right, nums); }
4.拓展
若输入是一个普通二叉树,可用哈希表来求解。
Time Complexity: O(n)
, Space Complexity: O(n)
.
bool findTarget(TreeNode* root, int k) { vector<int> v; return dfs(root,v,k); } bool dfs(TreeNode* root,vector<int>& v, int k){ if(!root) return false; if(find(v.begin(),v.end(),k-(root->val))!=v.end()) return true; else{ v.push_back(root->val); return dfs(root->left,v,k)||dfs(root->right,v,k); } }
阅读全文
0 0
- 653. Two Sum IV
- 653. Two Sum IV
- 653. Two Sum IV
- 653. Two Sum IV
- 653. Two Sum IV
- 653. Two Sum IV
- 653. Two Sum IV
- 653. Two Sum IV
- 653. Two Sum IV
- 653. Two Sum IV
- 653. Two Sum IV
- leetcode 653. Two Sum IV
- Leetcode 653. Two Sum IV
- 【LeetCode】653. Two Sum IV
- Leetcode 653. Two Sum IV
- 【LeetCode】653. Two Sum IV
- leetcode 653. Two Sum IV
- leetcode 653. Two Sum IV
- CAD转图片怎么设置输出色彩和背景颜色
- 前端安全
- java实现文件预览最常用法
- 文章标题
- sql 笔记
- 653. Two Sum IV
- [App] Jenkins 安装
- 如果你想创业,又担心腾讯照抄你的好点子的话,可以看看下面的文章。
- Java的历史简述
- ionic刷新的代码
- 莱德币发展背景,数字货币高涨浪潮下诞生
- POJ 1661 Help Jimmy (只能根据上面的坐标往下DP)
- ASSM自动段空间管理 简介
- hadoop2.x 常用端口及定义方法