Loading

摘要: 思路 方法:排序 + 双指针 先排序,之后有序数组,固定一个数,对后面的有序序列进行双指针查找,双指针方法见此题:LeetCode 167. 两数之和 II - 输入有序数组 1 class Solution { 2 public: 3 vector<vector<int>> threeSum(ve 阅读全文
posted @ 2021-03-01 11:58 拾月凄辰 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 思路 方法一:哈希表 遍历整棵树,找出所有可能的组合,判断是否存在和为 k 的一对节点。现在在此基础上做一些改进。 如果存在两个元素之和为 k,即 x+y=k,并且已知 x 是树上一个节点的值,则只需判断树上是否存在一个值为 y 的节点,使得 y=k-x。基于这种思想,在树的每个节点上遍历它的两棵子 阅读全文
posted @ 2021-03-01 11:18 拾月凄辰 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 思路 方法一:二分查找 在数组中找到两个数,使得它们的和等于目标值,可以首先固定第一个数,然后寻找第二个数,第二个数等于目标值减去第一个数的差。利用数组的有序性质,可以通过二分查找的方法寻找第二个数。为了避免重复寻找,在寻找第二个数时,只在第一个数的右侧寻找。 1 class Solution { 阅读全文
posted @ 2021-03-01 11:03 拾月凄辰 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 思路 方法一:暴力枚举 最容易想到的方法是枚举数组中的每一个数 x,寻找数组中是否存在 target - x。 当我们使用遍历整个数组的方式寻找 target - x 时,需要注意到每一个位于 x 之前的元素都已经和 x 匹配过,因此不需要再进行匹配。而每一个元素不能被使用两次,所以我们只需要在 x 阅读全文
posted @ 2021-03-01 10:36 拾月凄辰 阅读(62) 评论(0) 推荐(0) 编辑