1679_MaxNumberofK SumPairs - a920604a/leetcode GitHub Wiki


title: 1679. Max Number of K-Sum Pairs tags:
- Two Pointers - hash categories: leetcode comments: false

solution

option 1 - Two Pointers

class Solution {
public:
    int maxOperations(vector<int>& nums, int k) {
        sort(nums.begin(), nums.end());
        int l =0, r = nums.size()-1;
        int count = 0;
        while(l<r){
            if(nums[l]+nums[r] == k){
                count++;
                l++;
                r--;
            }
            else if(nums[l] +nums[r] < k) l++;
            else r--;
        }
        return count;
    }
};

option 2 - hash table

class Solution {
public:
    int maxOperations(vector<int>& nums, int k) {
        unordered_map<int,int> mp;
        int n = nums.size(), count=0;
        for(int i=0;i<n;++i){
            if(mp.count(k - nums[i]) && mp[k-nums[i]]>0){
                count++;
                mp[k-nums[i]]--;
            }
            else mp[nums[i]]++;
        }
        return count;
    }
};

analysis

  • option 1
    • time complexity O(nlogn)
    • space complexity O(1)
  • option 2
    • time complexity O(n)
    • space complexity O(n)
⚠️ **GitHub.com Fallback** ⚠️