Contains Duplicate III LeetCode solution in C++

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

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0