![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
让我们一起成长
这个作者很懒,什么都没留下…
展开
-
2021-06-26
算法题之两个链表相加(中等难度)思路⾸先每⼀位相加肯定会产⽣进位,我们⽤ carry 表示。进位最⼤会是 1 ,因为最⼤的情况是⽆⾮是 9 + 9 +1 = 19 ,也就是两个最⼤的数相加,再加进位,这样最⼤是 19 ,不会产⽣进位 2 。下边是伪代码。初始化⼀个节点的头,result head ,但是这个头不存储数字。并且将 curr 指向它。初始化进位 carry 为 0 。初始化 p 和 q 分别为给定的两个链表 l1 和 l2 的头,也就是个位。循环,直到 l1 和 l2 全部到达 n原创 2021-06-27 00:11:37 · 79 阅读 · 0 评论 -
三数之和Java版解题
三数之和Java版解题特殊条件判段,对于数组长度 n,如果数组为 null 或者数组长度小于 3,返回 null的集合。 对数组进行排序。 遍历排序后数组: 若nums[i]>0:因为已经排序好,所以后面不可能有三个数加和等于 0,直接返回结果。 对于重复元素:跳过,避免出现重复解 令左指针L=i+1,右指针 R=n-1,当 L<R 时,执行循环: 当nums[i]+nums[L]+nums[R]==0执行循环,判断左界和右界是否和下一位置重复,去除重复解。并同时将L,R移到下一位置原创 2021-04-02 18:20:53 · 281 阅读 · 0 评论