Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit LeetCode solution in C++
1class Solution {2public:3int longestSubarray(vector<int> &nums, int limit) {4int max_ans = 0;5map<int, int> mp;6int j = 0;7for (int i = 0; i < nums.size(); i++) {8mp[nums[i]]++;910while (mp.size() > 0 && abs(mp.rbegin()->first - mp.begin()->first) > limit) {11if (mp[nums[j]] > 0) {12mp[nums[j]]--;13}1415if (mp[nums[j]] == 0) {16mp.erase(nums[j]);17}1819j++;20}2122max_ans = max(max_ans, i - j + 1);23}2425return max_ans;26}27};