您的位置:首页 > 大数据 > 人工智能

leetcode之Contains Duplicate II

2016-04-13 20:59 302 查看
这道题的直观想法是用两个for循环,但这样做会超时。

这个时候,为了减少时间复杂度,一般使用哈希表来存储遍历过的变量及其index。哈希表的键key存储的是已经遍历过的数组的值,哈希表的值value存储的是该数组值的index,这样就方便将当前指向的数组值及标号与哈希表的值与标号进行比较了。

C++代码:

class Solution {

public:

    bool containsNearbyDuplicate(vector<int>& nums, int k) {

        unordered_map<int, int> mymap;

        for(int i=0;i<nums.size();i++){

            if(mymap.find(nums[i])!=mymap.end()&&i-mymap[nums[i]]<=k)

                return true;

            mymap[nums[i]]=i;

        }

        return false;

    }

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: