思想:遍历数组,每个不同的元素分别当作target,然后利用双指针,并且双指针避免取之前取过的数。
这题没有做出来,是时间超时了,我的做法是:先排序,之后利用双指针,最后有结果了之后把结果中的给排序去重。
转自一个评论区的做法:
class Solution { public List> threeSum(int[] nums) { Arrays.sort(nums); List
> res = new ArrayList<>(); int n = nums.length; for(int i = 0;i
知识点总结 1.如何创建了一个二维的list
List> res = new ArrayList<>();
2.如何给二维list赋值
res.add(Arrays.asList(nums[i],nums[l],nums[r]))这是我写的:可以说真的是脱裤子放屁了
int[] uu={nums[i],nums[j],nums[k]}; ans.add(new linkedList<>()); //先添加层数 ans.get(d).add(uu[0]); //后在指定层数进行添值:list.get(layers).add(value); ans.get(d).add(uu[1]); ans.get(d).add(uu[2]); //插入第layers+1层的结尾 d++;3.给数组排序之后,当前一个数和前一个相同跳过
Arrays.sort(nums); for(int i = 0;i欢迎分享,转载请注明来源:内存溢出
评论列表(0条)