本文共 442 字,大约阅读时间需要 1 分钟。
给定一个包含 n 个整数的数组 S,是否存在属于 S 的三个元素 a,b,c 使得 a + b + c = 0 ?找出所有不重复的三个元素组合使三个数的和为零。
注意:结果不能包括重复的三个数的组合。
例如, 给定数组 S = [-1, 0, 1, 2, -1, -4],一个结果集合为:[ [-1, 0, 1], [-1, -1, 2]]
先将数组排序,外面一层for循环,变成two sum问题,注意去重,复杂度O(n^2).
去重的话要分为两种情况,一种是for循环的时候,一种two sum的时候。
class Solution {public: vector> threeSum(vector & nums) { vector >re; sort(nums.begin(), nums.end()); for(int i=0; i
转载地址:http://dhabi.baihongyu.com/