Contains Duplicate III LeetCode solution in C++
1class Solution {2public:3bool containsNearbyAlmostDuplicate(vector<int> &nums, int indexDiff, int valueDiff) {4int i = 0;5map<int, int> mp;6int n = nums.size();7for (int j = 0; j < n; j++) {8auto val = mp.lower_bound(nums[j]);9if (val != mp.end() and (val->first - nums[j]) <= valueDiff) {10return true;11}12if (val != mp.begin()) {13val--;14if (abs(val->first - nums[j]) <= valueDiff) {15return true;16}17}18mp[nums[j]]++;19if ((j - i) == indexDiff) {20mp[nums[i]]--;21if (mp[nums[i]] == 0) {22mp.erase(nums[i]);23}24i++;25}26}27return false;28}29};