219. Contains Duplicate II

来源:互联网 发布:芭比娃娃淘宝 编辑:程序博客网 时间:2024/06/01 20:56

题目

219. Contains Duplicate II

解题思路

这道题如果用嵌套循环会超时,所以我用了map。

思路简单,有2个点需要注意:

  • 当nums为空或k为0的时候一定是false

  • k有可能大于nums数组长度

具体代码

class Solution {public:    bool containsNearbyDuplicate(vector<int>& nums, int k) {        if (nums.empty() || !k)            return false;        k = k < nums.size() - 1 ? k : nums.size() - 1;        map<int, int> tmp;        for (int i = 0; i < nums.size(); i++) {            if (tmp.find(nums[i]) != tmp.end() && i - tmp[nums[i]] <= k) {                return true;            }            else {                tmp[nums[i]] = i;            }        }        return false;    }};
原创粉丝点击