三数之和(排序+双指针)

题目链接:https://leetcode-cn.com/problems/3sum/

看到题意,很自然的想到三层循环,但是数组中可能有重复,复杂度较高,为O(N^3)(N是数组的长度),于是我们给它加一点判断条件,每次进入循环后,判断当前值和上一循环值是否相同。继续,我们能想到,可以把三层循环简化为两层循环,因为当我们给数组升序后,左边的数字一定不大于右边的数字。所以可以开始固定一个数,在其后增加两个指针,比较两个指针的和与目标值的大小来左右移动。
class Solution {
public List> threeSum(int[] nums) {
List> ans = new ArrayList<>();
if(nums == null || nums.length<=2) return ans

三数之和(排序+双指针)最先出现在Python成神之路

版权声明:
作者:倾城
链接:https://www.techfm.club/p/24605.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>