class Solution { public: bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) { set<int> mySet; for(int i=0; i<nums.size(); i++){ // remove element outside k distance range from mySet if(i-k-1>=0) mySet.erase(nums[i-k-1]); set<int>::iterator itup = mySet.upper_bound(nums[i]-t-1); if(itup==mySet.end()){ mySet.insert(nums[i]); continue; } if(abs(*itup-nums[i])<=t ) return true; mySet.insert(nums[i]); } return false; } };