219.[Leetcode]Contains Duplicate II
来源:互联网 发布:怎么添加js 编辑:程序博客网 时间:2024/04/28 08:51
题意
找到一个数组中,是否存在两个相等 且 相对距离小于等于k 的元素
我的解法
一开始想用双重循环,后来果然超时间了
然后想用 set 判断来优化一下,可以倒是可以,不过并不是最优的做法
// 用set看看class Solution {public: bool containsNearbyDuplicate(vector<int>& nums, int k) { map<int,int> Nums; // first 是 val,而 second 是 position map<int,int>::iterator it; for(int i=0; i<nums.size(); i++){ it = Nums.find(nums[i]); if(it == Nums.end()){ Nums.insert(pair<int,int>(nums[i],i)); } else { if(i-it->second <= k) return true; else it->second = i; // 如果找了但是不在范围之内,那么要更新一下position,因为后面也有可能再次找到可以匹配的 } } return false; }};
我看了一下大部分的c++,java都是利用set或者是map,更快的途径是使用 unordered_set 因为散列容器在其内部是用 散列表 代替 二叉树实现,查找的时间是常数级别
0 0
- [leetcode] 219. Contains Duplicate II
- LeetCode 219. Contains Duplicate II
- LeetCode:219. Contains Duplicate II
- 【Leetcode】219. Contains Duplicate II
- Leetcode 219. Contains Duplicate II
- 219. Contains Duplicate II LeetCode
- 【LeetCode】219. Contains Duplicate II
- Leetcode 219. Contains Duplicate II
- LeetCode *** 219. Contains Duplicate II
- LeetCode 219. Contains Duplicate II
- LeetCode 219. Contains Duplicate II
- LeetCode 219. Contains Duplicate II
- leetcode 219. Contains Duplicate II
- 219.[Leetcode]Contains Duplicate II
- Leetcode 219. Contains Duplicate II
- 【leetcode】219. Contains Duplicate II
- LeetCode - 219. Contains Duplicate II
- leetcode 219. Contains Duplicate II
- 机器学习中常见的最优化算法
- <Handler>之简单的消息传递机制
- Contains Duplicate II
- Linux常用命令
- 数据结构—基于深度优先遍历算法的应用
- 219.[Leetcode]Contains Duplicate II
- 困境
- wpf 绑定数据无法更新ui控件可能存在的问题
- java.util.ResourceBundle使用详解
- 【FFMpeg视频开发与应用基础】一、使用FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑
- \r 在InterlliJ IDEA 和 Eclipse 中输出的结果不一样
- STM32F0xx_看门狗(独立+窗口)配置详细过程
- Airbnb
- 必选参数、默认参数、可变参数、关键字参数和命名关键字参数