Leetcode 219. 存在重复元素 II 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 219. 存在重复元素 II 解题思路及C++实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解題思路:
使用 unordered_map 來遍歷一次數組,并將同一個數值對應的索引存在一個vector中,所以,vector中的索引剛好也是從小到大排好序的。然后看看vector.size() 大于等于 2 的數字,其索引間隔是否滿足要求。
class Solution { public:bool containsNearbyDuplicate(vector<int>& nums, int k) {unordered_map<int, vector<int> > mp;for(int i = 0; i < nums.size(); i++){mp[nums[i]].push_back(i);}for(auto it: mp){if(it.second.size() > 1){//遍歷倆倆相鄰的索引值,找找是否存在for(int j = 0; j < it.second.size()-1; j++){if(it.second[j+1] - it.second[j] <= k) return true;}}}return false;} };?
?
總結
以上是生活随笔為你收集整理的Leetcode 219. 存在重复元素 II 解题思路及C++实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 217. 存在重复元素
- 下一篇: Leetcode 283. 移动零 解题