题意:一个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: