74、【数组】leetcode——18. 四数之和(C++版本)题目描述解题思路
四数之和就是在三数之和多加一个数,用前两个数相加,后面两个数继续作为双指针移动判定。(忽略存储答案的空间,额外的排序的空间复杂度为。(1)第一层的i,与三数之和相同,判定条件为。可知上述三种情况下,一定会是。时,没有未被记录元素被去掉,因此判定条件为。,但后续还有一个-1,可让相加后为-3。(1)第一层的i,在三数之和中的条件为。(2)第二层的j,思路同上,判定条件为。后续还有负数,相加后就有可能等于。,此时后续一定无满足相加后等于。(2)第二层的j,要确保第一次。,故另一个判定条件为。