219. 存在重复元素II

给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 ij,使得 nums [i] = nums [j],并且 ij 的差的 绝对值 至多为 k

解法

bool containsNearbyDuplicate(vector<int>& nums, int k) {

    unordered_map<int,int> nmap;
    for (int i = 0; i <nums.size();i++)
    {
        if (nmap.count(nums[i]) == 0)
            nmap[nums[i]] = i;
        else if (i - nmap[nums[i]] <=k)
            return true;
        else
            //不断更新nums[i]的最新索引,免去erase的消耗
            nmap[nums[i]] = i;
    }

    return false;

}
全部评论

相关推荐

10-17 16:07
门头沟学院 Java
牛牛大你18号:在汇报,突然弹出来,,领导以为我在准备跳槽,刚从领导办公室谈心出来
点赞 评论 收藏
分享
如题,问一下各位佬,腾讯云最近约面,想知道和云智一样吗?
贺兰星辰:你看看你面试邀约是腾讯发的还是腾讯云智发的就行,云智的面试邀约是 MokaHR 发的,腾讯就还是腾讯那套自己的系统
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务