数据结构与算法 LeetCode编程练习--Contains Duplicate II
2015-12-22 23:57
387 查看
Given an array of integers and an integer k,
find out whether there are two distinct indices i and j in
the array such that nums[i] = nums[j] and
the difference between i and jis
at most k.
思路:运用关联数组,键为数组中的值,值为数组中相应值得下标。
当我们发现这个键已经在map中存在了。就来判断当前的下标和map中的下标是否相差在k以内。
若是,返回true;
更新map中的键值对。(插入不会替换原来的键值对,只有通过下标才可以)
(!(count.insert({nums[i],i})).second)
insert(n) 若遇到已经存在的键值对,返回一个pair(元素,bool=false)。
find out whether there are two distinct indices i and j in
the array such that nums[i] = nums[j] and
the difference between i and jis
at most k.
思路:运用关联数组,键为数组中的值,值为数组中相应值得下标。
当我们发现这个键已经在map中存在了。就来判断当前的下标和map中的下标是否相差在k以内。
若是,返回true;
更新map中的键值对。(插入不会替换原来的键值对,只有通过下标才可以)
class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
if (nums.size() <= 1)
return false;
else
{
map<int, int> count;
for (int i = 0; i < nums.size();i++)
{
if (!(count.insert({nums[i],i})).second)
{
if ((i - count[nums[i]]) <= k)
{
return true;
}
}
count[nums[i]] = i;
}
return false;
}
}
};
(!(count.insert({nums[i],i})).second)
insert(n) 若遇到已经存在的键值对,返回一个pair(元素,bool=false)。
相关文章推荐
- 实验1 线性表的顺序实现
- 算法设计题1.20-绪论-第1章-《数据结构习题集》-严蔚敏吴伟民版
- 算法设计题1.19-绪论-第1章-《数据结构习题集》-严蔚敏吴伟民版
- 算法设计题1.17-绪论-第1章-《数据结构习题集》-严蔚敏吴伟民版
- 算法设计题1.16-绪论-第1章-《数据结构习题集》-严蔚敏吴伟民版
- 数据结构实验之排序七:选课名单
- 数据结构 JAVA描述(一) 线性表
- php实现的基本数据结构
- php数据结构算法示例
- 数据结构 线性表JAVA实现
- 绪论-第1章-《数据结构习题集》答案解析-严蔚敏吴伟民版
- 数据结构实验之查找二:平衡二叉树
- 数据结构基础(C语言版)(朱仲涛翻译)代码学习 第一章002
- 【ShancoLove】带你看数据结构——第十五课:哈夫曼树
- 【ShancoLove】带你看数据结构——第十四课:通讯录
- JVM启动过程的重要数据结构
- poj 1308 Is It A Tree? 数据结构 并查集
- 1-1-绪论-第1章-《数据结构》课本源码-严蔚敏吴伟民版
- opencv 基本数据结构
- 2015年大二上-数据结构-树和二叉树-1-(3)用二叉树遍历思想解决问题