LeetCode 645. Set Mismatch

题意:一个size为n的数组,包含数字1-n,但是有一个元素重复了,占用了其他元素的位置。找出这个重复的元素和被占用的元素。

solution:遍历两次数组,第一次记录元素的出现情况,第二次查找特殊元素。

class Solution {
public:
    vector<int> findErrorNums(vector<int>& nums) {
        int hash[10001] = {0};
        vector<int> res;
        int dup, miss;
        
        for ( auto i : nums ) {
            hash[i]++;
        }
        for ( int i = 1; i <= nums.size(); i++ ) {
            if ( hash[i] == 2 ) {
                dup = i;
            }
            else if ( hash[i] == 0 ) {
                miss = i;
            }
        }
        res.push_back(dup);
        res.push_back(miss);
        return res;
    }
};

submission:


猜你喜欢

转载自blog.csdn.net/jack_ricky/article/details/79397280
今日推荐