数组找missing元素

来源:互联网 发布:三国志13隐藏武将数据 编辑:程序博客网 时间:2024/04/29 18:47

大小N的数组有 N-k个不同的数, 范围0-N, 找missing

要求用O(1) space


发信人: longway2008 (longway2008), 信区: JobHunting
标  题: Re: 问个题:大小N的数组有 N-k个不同的数, 范围0-N, 找miss
发信站: BBS 未名空间站 (Fri Apr  6 07:07:24 2012, 美东)

O(N)时间复杂度

// 大小N的数组有 N-k个不同的数, 范围 0-N-1, 找miss
// 注意:跟楼主题目不同,我假设数字范围从0 -- N-1
vector<int> FindMissingNumbers(vector<int> & a)
{
    vector<int> missing;
    for (int i=0; i<a.size(); i++)
    {
        while (a[i]!=a[a[i]])
            swap(a[i], a[a[i]]);

        if (a[i] != i)
            missing.push_back(i);
     }
    
     return missing;   
}

原创粉丝点击