nums中和为target的不重复四元组(组里的元素值可以重复,但四元组不能集合相等)。排序加双指针。若nums中的元素个数小于4,结果为空。排序。考察[0:-3]为第一个元素的候选值,下次不能再选相同的元素值作为第一个元素的候选值,剔除很明显不满足继续讨论四元组和与target关系的分支,如nums[i]+nums[i+1]+nums[i+2]+nums[i+3]>target,不往后继续考察i,因为后面的四元组的和更大;如nums[i]+nums[n-3]+nums[n-2]+nums[n-1]<target,直接往后考察i,因为目前最大可能的四元组和还小于target,中间的过程可以忽略;加快搜索进度。同理考察[i+1:-2]为第二个元素的候选值,且进行上述剪枝,最后还剩下两个元素的候选值,两个指针的选择问题。
参考链接:18. 四数之和