LeetCode : Contains Duplicate II

来源:互联网 发布:淘宝网安卓版电脑下载 编辑:程序博客网 时间:2024/06/03 14:22

直接用遍历会超时,所以要先排序,连同初始index一起排序。

bool containsNearDuplicate(vector<int>& nums, int k){    if(nums.size() < 2)        return false;    vector<int> index;    for(int i = 0; i < nums.size(); i++)        index.push_back(i);    for(int i = 0; i < nums.size() - 1; i++)    {        int j = i + 1;        int flag = nums[j];        while(j > 0 && flag < nums[j - 1])        {            nums[j] = nums[j - 1];            index[j] = index[j - 1];            j--;        }        nums[j] = flag;        index[j] = i + 1;    }    for(int i = 0; i < nums.size() - 1; i++)        if(nums[i] == nums[i + 1] && abs(index[i] - index[i + 1]) <= k)            return true;    return false;}
0 0
原创粉丝点击