Two sum类问题,其实本质上要么是用指针在sorted array中找等于target的数,要么就是用map在unsorted array中找等于/最大的小于/最小的大于target的数
第一类:sorted array 中找等于target的数 (这里只可以是等于哦)
原版:
167. Two Sum II - Input array is sorted
变形:(这些题都要先sort,主要是为了避免重复值)
15. 3Sum 固定一个数,双指针
18. 4Sum 固定两个数,双指针
1099. Two Sum Less Than K 当sum < K时更新结果
653. Two Sum IV - Input is a BST 先inorder 遍历,遍历完之后就是sorted array啦
第二类: unsorted array 中找等于/最大的小于/最小的大于target的数
原版:
Leetcode开始之旅,1. Two Sum
变形:
170. Two Sum III - Data structure design 用一个Map记录先前的数,以便可以查询是否有不同的数可以构成target
560. Subarray Sum Equals K 用一个Map记录先前的数的总和,以便看当前总和和先前的总和之差是否为target