LC *220. 存在重复元素 III(滑动窗口)

2022-01-13 14:53:42 浏览数 (2)

题目

思路

采用暴力法检查所有元素会超时,可以采用STL的set自动将窗口中的元素排序。

然后采用滑动窗口思想

代码语言:javascript复制
class Solution {
public:
    bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) {
        set<long long> rec;
        int left = 0;
        for (int i = 0; i < nums.size(); i  ) {
            if (i - left > k) rec.erase(nums[left  ]);
            auto it = rec.lower_bound((long long) nums[i] - t);
            if (it != rec.end() && abs(*it - nums[i]) <= t) return true;
            rec.insert(nums[i]);
        }
        return false;
    }
};

0 人点赞