c_cpp 448.查找数组中消失的所有数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 448.查找数组中消失的所有数字相关的知识,希望对你有一定的参考价值。

class Solution {
public:
    vector<int> findDisappearedNumbers(vector<int>& nums) {
        vector<int> array;
        vector<int> hash;
        hash.resize(nums.size()+1);
        
        for(int i = 0;i < nums.size();++i)
            hash[nums[i]]++; 
        for(int i = 1;i <= nums.size();++i)
            if(!hash[i])
                array.push_back(i);
        
        return array;
    }
};
class Solution {
public:
    vector<int> findDisappearedNumbers(vector<int>& nums) {
        vector<int> array;
        set<int> temp;
        
        for(int i = 0;i < nums.size();++i)
            temp.insert(nums[i]);
        
        for(int i = 1;i <= nums.size();++i)
            if(!temp.count(i))
                array.push_back(i);
        
        return array;
    }
};
//参考Discuss写的
//复杂度还是很高  Runtime: 128 ms, faster than 44.12%
class Solution {
public:
    vector<int> findDisappearedNumbers(vector<int>& nums) {
        vector<int> array;
        
        for(int i = 1;i <= nums.size();++i){
            int index = abs(nums[i-1]) - 1;
            if(nums[index] > 0){
                nums[index] = -nums[index];
            }
        }
        for(int i = 0;i < nums.size();++i){
            if(nums[i] > 0)
                array.push_back(i+1);
        }
        
        return array;
    }
};

以上是关于c_cpp 448.查找数组中消失的所有数字的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 448.找到所有数组中消失的数字

LeetCode448-找到所有数组中消失的数字(原地数组)

448. 找到所有数组中消失的数字

448. 找到所有数组中消失的数字

[LeetCode] 448. 找到所有数组中消失的数字 ☆

[LeetCode] 448. 找到所有数组中消失的数字(思维)