每日一题 2019 - 03 - 05
题目:
Given an array nums
of n integers, are there elements a, b, c in nums
such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.
Note:
The solution set must not contain duplicate triplets.
Example:
1 | Given array nums = [-1, 0, 1, 2, -1, -4], |
解法:
这个题题意很简单就是让我们找到vector
中任意三个数字的和为0
的序列,直观的思路就是三重循环解决问题,但是会超时,所以可以换一种思路。
将时间复杂度从降到,我们需要减少一层循环的次数,那么我们可以设置两个指针:left = i + 1
,right = size - 1
,一个从当前坐标的右边一位往后遍历,一个从数组的最后一位往前遍历,如果:
- ,那么要求的序列
这里有一个小技巧,可以先对nums
先进行排序,那么就一定可以保证求出来的序列一定是从大到小的。
代码:
1 | class Solution { |