zoukankan      html  css  js  c++  java
  • 18. 4Sum

    #include <string>
    #include <stack>
    #include <vector>
    #include <map>
    #include <algorithm>
    using namespace std;

    vector<vector<int>> fourSum(vector<int>& nums, int target) {
        vector<vector<int>> res;
        sort(nums.begin(), nums.end());
        int len = nums.size();
       
        for (int i = 0; i < len; i++) {
            for (int j = i + 1; j < len; j++) {
                int third = j + 1, fouth = len - 1;
                while (third < fouth) {
                    int sum = nums[i]+nums[j]+ nums[third]+nums[fouth];
                    if (target == sum) {
                        vector<int> temp = { nums[i],nums[j],nums[third],nums[fouth] };
                        res.push_back(temp);
                        while (third < fouth && nums[third ] == temp[2]) third++;
                        while (third < fouth && nums[fouth ] == temp[3]) fouth--;
                    }
                    else sum < target ? third++ : fouth--;
                }
                while ((j + 1 < len) && nums[j] == nums[j + 1]) j++;
            }
            while ((i + 1 < len) && nums[i] == nums[i + 1]) i++;
        }
        return res;
    }
    int main() {
        vector<int> nums = { 1,0,-1,0,-2,2};
        int target = 0;
        vector<vector<int>> res=fourSum(nums, target);
    }

  • 相关阅读:
    笔记本搜不到无线网络连接[转]
    局域网IP冲突
    CFree 修改/添加编译配置环境(Build Configuration)
    字母索引网页
    NAOChoregraphe"单机使用许可证使用了多次"问题解决方案
    redis源码笔记-dict.c
    redis源码笔记-sds
    redis源码笔记-testhelp
    redis源码笔记-endian
    redis源码笔记-dict.h
  • 原文地址:https://www.cnblogs.com/hustlx/p/5251018.html
Copyright © 2011-2022 走看看