PART 01
454 四数相加2
输出:出现的次数(不需要去重)
四数相加:记录a+b,寻找c+d是否出现
使用map,value 记录a+b的值,key记录次数
PART 02
383 赎金信
和异位词的区别是:异位词是指a能组成b,b也能组成a
本题只要求b能组成a (magazine中可以有赎金信里没有的字母),magazine中的字母只能用一次
首先记录magazine中字母出现的次数,再验证是否包含了赎金信中的字母
PART 03
15 三数之和
数组中三个数相加等于0
不能出现重复的数字,也就是说使用哈希法时需要进行去重,且不需要返回下标
使用双指针法
首先对数组进行排序(不需要返回下标),从头开始遍历,指针一从第二个数开始,指针2从尾部开始
若三个数相加大于零,指针二向前移动,小于零则指针一向后移动,等于零则加入结果集,双指针开始移动
进行去重:目前遍历的元素和前一个元素相等,则重复,舍弃
left指针和后一个指针相同,继续前进,right和前一个相等,继续移动
PART 04
18 四数之和
在三数之和上加一层循环;target是任意值
注意逻辑条件:左右边界的大小等