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

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

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

方法一:哈希表

#include<iostream>
#include<unordered_map>

using namespace std;

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

int main()
{ 
    Solution solution;
    vector<int> duplicate{ 1,2,3,1 };
    int result = solution.containsNearbyDuplicate(duplicate,3);
    cout << result << endl;
    return 0;
}

在这里插入图片描述

方法二:滑动窗口

制造一个i-k-1的窗口,加入当前窗口位置的数组成员,超过窗口范围的删除,在此窗口中查找有无重复的数字,有则为真,无则为假

#include<iostream>
#include<unordered_set>

using namespace std;

class Solution {
public:
	bool containsNearbyDuplicate(vector<int>& nums,int k) {
		unordered_set<int> s;
		int length = nums.size();
		for (int i = 0; i < length; ++i) {
			if (i > k) {
				s.erase(nums[i - k - 1]);
			}
			if (s.count(nums[i])) {
				return true;
			}
			s.emplace(nums[i]);
		}
		return false;
	}
};

int main()
{
	Solution solution;
	vector<int> duplicate{ 1,2,3,1 };
	int result = solution.containsNearbyDuplicate(duplicate, 3);
	cout << result << endl;
	return 0;
}

在这里插入图片描述

相关推荐

  1. 219.存在重复元素2

    2024-04-23 13:52:03       37 阅读
  2. -217. 存在重复元素

    2024-04-23 13:52:03       43 阅读
  3. 217. 存在重复元素

    2024-04-23 13:52:03       35 阅读
  4. 每日OJ题_哈希表④_219. 存在重复元素 II

    2024-04-23 13:52:03       37 阅读
  5. LeetCode 219. 存在重复元素 II

    2024-04-23 13:52:03       25 阅读
  6. 经典150题第四十五题:存在重复元素 II

    2024-04-23 13:52:03       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 13:52:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 13:52:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 13:52:03       82 阅读
  4. Python语言-面向对象

    2024-04-23 13:52:03       91 阅读

热门阅读

  1. 【React Router】快速使用

    2024-04-23 13:52:03       36 阅读
  2. spring中的Aware接口概念

    2024-04-23 13:52:03       35 阅读
  3. 8.Godot 函数|变量|运算符|条件循环语句

    2024-04-23 13:52:03       35 阅读
  4. python机器学习库中Scikit-learn和TensorFlow如何选择?

    2024-04-23 13:52:03       36 阅读
  5. 【OS】AUTOSAR架构下MCAL Modules软件分区问题分析

    2024-04-23 13:52:03       37 阅读
  6. SQL中不等于的写法

    2024-04-23 13:52:03       31 阅读
  7. Linux文件/目录高级管理一 头歌

    2024-04-23 13:52:03       38 阅读
  8. 智能合约区块应用链交易所系统教程开发搭建

    2024-04-23 13:52:03       34 阅读
  9. 笔记:Python 循环结构练习题

    2024-04-23 13:52:03       35 阅读
  10. 实验3 7段数码管译码器动态显示

    2024-04-23 13:52:03       26 阅读
  11. yolov8下实现绿萝识别

    2024-04-23 13:52:03       43 阅读
  12. 【代码随想录】day44

    2024-04-23 13:52:03       112 阅读
  13. oracle--存储过程基本框架

    2024-04-23 13:52:03       111 阅读
  14. 富格林:善用正规要领杜绝受害

    2024-04-23 13:52:03       120 阅读
  15. 嵌入式学习——C语言基础——day6

    2024-04-23 13:52:03       34 阅读
  16. 2024.4.22每日一题

    2024-04-23 13:52:03       34 阅读
  17. RedisSearch:一个基于Redis的搜索引擎模块

    2024-04-23 13:52:03       188 阅读
  18. VScode 里面使用 python 去直接调用 CUDA

    2024-04-23 13:52:03       35 阅读