快乐水题219. 存在重复元素 II

Posted 谁吃薄荷糖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快乐水题219. 存在重复元素 II相关的知识,希望对你有一定的参考价值。

原题:

力扣链接:219. 存在重复元素 II

题目简述:

给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。

解题思路

1.利用哈希来统计相同的值,然后计算下标差;
2.符合条件则输出true,否则最后输出false;
3.over;

夹带私货
1.利用最爱的模拟大法,模拟大法可以失败,但是不能缺席!
2.美滋滋,可惜超时了;
3.over;

C++代码:

class Solution 
public:
    bool containsNearbyDuplicate(vector<int>& nums, int k) 

//模拟大法可惜超时了。。。。
/*
        int n = nums.size();

        for(int i = 0; i < n - 1;i++)
        
            for(int j = i +1;j < n; j++)
            

                if(nums[i] == nums[j] && abs(i - j) <=k)
                
                    return true;
                
            
        

                return  false;
*/


//哈希表法
        int n = nums.size();

        unordered_map<int, int> umap;


        for(int i = 0; i < n ; i++)
        
            if(umap.count(nums[i]) && abs(i - umap[nums[i]]) <= k)
            
                return true;
            

            umap[nums[i]] = i;
        

        return false;

    
;

力扣结果展示:

以上是关于快乐水题219. 存在重复元素 II的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 219: 存在重复元素 IIContains Duplicate II

力扣(LeetCode)219. 存在重复元素 II

Leetcode刷题100天—219. 存在重复元素 II(哈希表)—day11

力扣219. 存在重复元素 II 滑动窗口与哈希解题

「 每日一练,快乐水题 」217. 存在重复元素

「 每日一练,快乐水题 」217. 存在重复元素