首页 > 代码库 > Leetcode - 3Sum
Leetcode - 3Sum
蛮常见一道题目。
思路:
1:排序,按顺序遍历两个数之和twoSum,
2: 二分查找 (0 - twoSum)看是否存在
这题最容易错的地方是must not contain duplicate triplets,所以遍历的这时候要用一个数字记录最后一个遍历的数字是,避免重复。
#include<iostream> #include <vector> #include <algorithm> using namespace std; class Solution { public: vector<vector<int> > threeSum(vector<int> &num) { vector<vector<int>> combs; if (num.size() < 3) return combs; sort(num.begin(), num.end()); int prei; for (int i = 0; i < num.size() - 2; i++) { if (i > 0 && num[i] == num[prei]) continue; if (num[i]>0) break; int prej; for (int j = i + 1; j < num.size() - 1; j++) { if (j > i + 1 && num[j] == num[prej]) continue; int twoSum = num[i] + num[j]; int value = http://www.mamicode.com/0 - twoSum;>Leetcode - 3Sum
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。