3Sum

来源:互联网 发布:百恒网络 编辑:程序博客网 时间:2024/05/17 23:59

<span style="font-size:18px;">#include <string>#include <stack>#include <vector>#include <map>#include <algorithm>using namespace std;vector<vector<int>> threeSum(vector<int>& nums) {    sort(nums.begin(), nums.end());    int len = nums.size();    vector<vector<int>> res;    for (int i = 0; i < len; i++) {        int sum = 0 - nums[i];        int low = i + 1;        int high = len - 1;        while (low < high) {            if (sum > nums[low] + nums[high]) low++;            else if (sum < nums[low] + nums[high]) high--;            else {                vector<int> temp = { nums[i],nums[low],nums[high] };                res.push_back(temp);                while (low < high &&nums[low] == temp[1]) low++;                while (low < high && nums[high] == temp[2]) high--;            }        }        while ((i + 1 < len) && nums[i] == nums[i + 1]) i++;    }    return res;}int main() {    vector<int> nums = {-1,-1,0,1 };    vector<vector<int>> re=threeSum(nums);}</span>


0 0
原创粉丝点击