- 题目:https://leetcode.com/problems/contains-duplicate-ii/
- 思路:
- 理解题意:一个数组里面如果存在value相等,index差绝对值最大为k,则返回true【判断value相等的相邻index差值】
- 使用map标记value的上一个index,如果满足条件返回true;不满足条件更新value的index
- 坑
- 没明白题意
- map不太常用,忘记了insert、find、 updateValue等
- 代码
class Solution { public: bool containsNearbyDuplicate(vector<int>& nums, int k) { map<int, int> numIndex; for (int i = 0; i < nums.size(); i++) { map<int, int>::iterator iter = numIndex.find(nums[i]); if ( iter == numIndex.end()) { numIndex.insert(pair<int, int>(nums[i], i)); } else { if (i - iter->second <= k) return true; else numIndex[nums[i]] = i; } } return false; } };
219. Contains Duplicate II
最新推荐文章于 2021-05-01 23:25:57 发布