220. Contains Duplicate III

    xiaoxiao2021-03-26  8

    Given an array of integers, find out whether there are two distinct indices i and j in the array such that the absolute difference between nums[i] and nums[j] is at most t and the absolute difference between i and j is at most k.

    class Solution { public: bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) { int n=nums.size(); if(!n) return false; map<long,long> tmp; tmp[nums[0]]=0; int j=0; for(int i=1;i<n;i++) { if(i-j>k) tmp.erase(nums[j++]); auto a=tmp.lower_bound(nums[i]-t); if(a!=tmp.end() && a->first<=t+nums[i]) return true; tmp[nums[i]]=i; } return false; } };
    转载请注明原文地址: https://ju.6miu.com/read-600051.html