
思想:遍历数组,每个不同的元素分别当作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条)