nSum问题选编
15. 3Sum
注意:
- 只求值,不求坐标,可以排序!
- 用左右双指针
- 考虑去重
- for 循环中
- while 循环中
1 | class Solution { |
16. 3Sum Closest
注意:
- 依然以
sum
为判断条件,分别考虑sum
等于、大于、小于target
时的情况
1 | public class LeetCode16 { |
18. 4Sum
注意去重:
- 外层 for 去重逻辑不变,跳过重复的第一个元素
- 内层 for 去重逻辑:跳过重复的第二个元素
1 | class Solution { |
259. 3Sum Smaller
注意:
- 以 left 为计数基准, 找到符合条件的组合后就更新 left, 避免重复
1 | public class LeetCode259 { |
454. 4Sum II
注意:
- 只要求 count, 无需求值,则考虑用 HashMap 记录前两个数组各 sum 出现的次数
- 遍历后两个数组,考察 0-sum 的数量
1 | class Solution { |
653. Two Sum IV - Input is a BST
1 | public boolean findTarget(TreeNode root, int k) { |
1214. Two Sum BSTs
dfs很慢
1 | public boolean twoSumBSTs(TreeNode root1, TreeNode root2, int target) { |