找出一个数组中唯一一个出现2次的数字,不清楚是不是LeetCode上的题。本人默认是LeetCode上的题。
一个数组中有N个数字,但是只有一个数字出现了2次,其他的数字均不相同。这种问题一般应该采用hash方法实现。
让所有的数字都放到一个unordered_map中,key是数字,value是该数字出现的次数。
int main() {
std::vector<int> v = {1,2,4,4,9,7};
int res = 0;
std::unordered_map<int, int> map;
for (int i = 0; i < v.size(); i++) {
map[v[i]]++;
if (2 == map[v[i]]) {
std::cout << "key=" << v[i] << " || value=" << map[v[i]] << std::endl;
break; //因为只有一个数字出现2次,因此可以退出了
}
}
return 0;
}


本文介绍了一种使用C++解决数组中寻找唯一重复数字的问题的方法。通过使用unordered_map,我们可以有效地跟踪每个数字出现的次数,从而找到那个重复的数字。此方法适用于LeetCode类型的问题,提供了一个清晰且高效的解决方案。
588

被折叠的 条评论
为什么被折叠?



