力扣热题100-双指针-经典面试题:三数之和

题目描述:

题号:15

题目描述:

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != ji != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。

注意:答案中不可以包含重复的三元组。

示例:

力扣热题100-双指针-经典面试题:三数之和_第1张图片

解题思路:

思路一:暴力法

最容易想到的方法,用三层循环遍历数组。具有最差的时间复杂度。

时间复杂度O(N*N*N)                

空间复杂度O(1)

思路二:排序+双指针

面对这道经典面试题,我们可以利用排序+双指针的方法去除很多重复和无用的遍历之后来解决它。

算法思路:

1、先固定第i个数字作为双指针遍历的左开右闭区间的左边界

2、对i+1到数组尾的数字

你可能感兴趣的:(力扣热题100,leetcode,算法,c++,go)