哈希表-219.存在重复元素II-力扣(LeetCode)

一、题目解析

1、i!=j

2、numsi == numsj且abs(i-j)<=k

二、算法原理

解法:哈希表

与该题解法类似哈希表-1.两数之和-力扣(LeetCode)-CSDN博客,只不过多了一个下标差的判断。这里有一个小细节不容忽视,当哈希表中已存在查询元素时,在下标差比较后,不满足<=k,此时是否覆盖哈希表中的元素,更新下标呢?结果是肯定的,为了满足<=k的条件,肯定是越近的越好,所以离得远的可以直接覆盖

三、代码示例

cpp 复制代码
class Solution {
public:
    bool containsNearbyDuplicate(vector<int>& nums, int k)
    {
        unordered_map<int,int> hash;
        for(int i = 0;i<nums.size();i++)
        {
            if(hash.count(nums[i]))
            {
                if(abs(hash[nums[i]]-i)<=k)
                    return true;
            }
            hash[nums[i]] = i;
        }
        return false;
    }
};

看到最后,如果对您有所帮助,还请点赞、收藏和关注一键三连,感谢您的观看,我们下期再见!

相关推荐
励志不掉头发的内向程序员19 分钟前
【从零写一个CAD 03】三个 double 值得单独一个类吗:把视图变换抽成 View
开发语言·c++·qt·学习·系统架构
不会就选b7 小时前
算法日常・每日刷题--<贪心>25
数据结构·算法
蒸蒸yyyyzwd7 小时前
秋招学习笔记 day46
c++·八股
Cccp.12310 小时前
【leetcode】(七)前缀树和贪心算法
数据结构·leetcode·贪心算法
码匠许师傅10 小时前
【C++三方组件】cpp-httplib:一个头文件起 HTTP 服务
开发语言·c++·http
无名猿11 小时前
new/delete 与 malloc/free:为什么绝对不能混用
c++·内存管理·现代c++·踩坑记录
Logic10113 小时前
C语言/数据结构位运算题解:异或XOR找出多任务下载器中的“独特下载速度“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
2601_9622186113 小时前
C++中decltype关键字的实现
开发语言·c++
繁华的地方不一定留下你的脚印14 小时前
C++ std::variant 与 std::visit:安全保存多种类型,写清每个处理分支
开发语言·c++
程序员老陆14 小时前
WIN32_LEAN_AND_MEAN:Windows 头文件里的“精简编译开关”
c++·windows