Sort (Nums Begin, Nums End )

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

sort(nums.begin(),nums.

end());

set<pair<int,int>> temp;
int cnt=0;
int i=0;
int j=1;
while(i<nums.size() && j<nums.size()){
if (nums[j]-nums[i] == k && i!=j) {
temp.insert({nums[i],nums[j]});
cnt++;
i++;
j++;
}
else if (nums[j]-nums[i] < k) j++;
else i++;

return temp.size();

class Solution {

int binary_search(vector<int> &nums,int s,int e, int target){


int mid = s+(e-s)/2;

while(s<=e){
if (nums[mid]>target) e=mid-1;
else if (nums[mid]<target) s=mid+1;
else return target;

mid = s+(e-s)/2;
}

return -INT_MAX;
}

public:
int findPairs(vector<int>& nums, int k) {

sort(nums.begin(),nums.end());
set<pair<int,int>> temp;

for (int i=0; i<nums.size(); i++){

int key = binary_search(nums,i+1,nums.size()-1, nums[i] + k);

cout << "printing the value of key " << key << " " << i << endl;

if (key != -INT_MAX)
temp.insert({nums[i],key});
}
return temp.size();

}
};

You might also like