【剑指 Offer II 007. 数组中和为 0 的三个数】

【剑指 Offer II 007. 数组中和为 0 的三个数】,第1张

【剑指 Offer II 007. 数组中和为 0 的三个数】


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


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5703176.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存