您的位置:首页 > 其它

2017.11.1 LeetCode - 653. Two Sum IV - Input is a BST

2017-11-01 19:01 302 查看

653. Two Sum IV - Input is a BST

Description

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.



题意: 给你个二叉排序树,和一个k值,让你判断这里面是否有两个数的和为k

分析:直接把树上的值递归到数组里,然后Two Pointers ,O(n)的的时间复杂度里求出即可

参考函数

class Solution {
public:
void getnums(TreeNode* root,vector<int>& nums) {
if(!root) return;
getnums(root->left,nums);
nums.push_back(root->val);
getnums(root->right,nums);
}

bool findk(int k,vector<int>& nums) {
int len = nums.size();
int l = 0,r = len-1,sum = 0;
while(l < r) {
if(nums[l] + nums[r] == k) {
return true;
} else if(nums[l] + nums[r] > k) {
r--;
} else {
l++;
}
}
return false;
}
bool findTarget(TreeNode* root, int k) {
vector<int> nums;
getnums(root,nums);
return findk(k,nums);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: