暴力是超时的,第三个for用二分查找依然超时,需要加特判可以通过,特判:第一个数必须小于等于0,如果第一个数重复,就跳过,这样改代码的话可以通过。
但是效率不高,最后我们还是要利用排序的双指针,固定第一个值,把双指针定位在第一个数的左右两端,利用数组的有序性,进行双指针的移动。
代码来源:
https://leetcode-cn.com/problems/3sum/solution/hua-jie-suan-fa-15-san-shu-zhi-he-by-guanpengchn/
public List<List<Integer>> threeSum1(int[] nums) {
List<List<Integer>> ans = new ArrayList<>();
if (nums == null