219. Contains Duplicate II
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 j is at most k.
题目大意:
找到数组中两个相同元素,如果这两个元素的距离小于等于k,则返回true。如果任意两个相同元素的距离都大于k,或者没有两个元素是相同的,那么返回false。
代码如下:
class Solution { public: bool containsNearbyDuplicate(vector& nums, int k) { unordered_map myMap; for(int i = 0;i < nums.size();i++) { if(myMap.find(nums[i]) == myMap.end()) { myMap.insert(pair (nums[i],i)); } else { if(i - myMap[nums[i]] <= k) { return true; } else myMap[nums[i]] = i; } } return false; } };
2016-08-12 01:54:29
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。