• 18.4Sum


    思路:
    • 类似3Sum,利用map存储可以省去判断重复数组,复杂度为 (O(n^4)),因为set判断元素是否重复也需要 (O(n)).
    class Solution {
    public:
        vector<vector<int>> fourSum(vector<int>& nums, int target) {
        	sort(nums.begin(), nums.end());
           vector<vector<int>> res;
           set<vector<int>> tmp;
           int len = nums.size();
           for(int i = 0; i < len - 3; i++) {
           		for(int j = i+1; j < len -2 ; j++){
           			int lo = j+1,hi = len-1;
           			while(lo < hi){
           				if(nums[i] + nums[j] + nums[hi] + nums[lo] == target){
           					tmp.insert({nums[i],nums[j],nums[lo],nums[hi]});
           					lo++;
           					hi--;
           				}else if(nums[i] + nums[j] + nums[hi] + nums[lo] < target){
           					lo++;
           				}else hi--;
           			}
           		}
           }
           for(auto m : tmp){
           		res.push_back(m);
           }
           return res;
        }
    };
    
  • 相关阅读:
    【POJ
    【POJ
    【POJ
    【POJ
    【POJ
    【POJ
    【POJ
    【POJ
    NAT
    OSPF与ACL综合实验
  • 原文地址:https://www.cnblogs.com/UniMilky/p/6953718.html
Copyright © 2020-2023  润新知