找出任意一个重复的数字或者全部重复的数字
int main()
{
int a[] = {1,2,3,4,4,3,2,1,2,3,6,7,8,9,10};
vector<int> vec,res;
for (int i = 0; i < 15; i++)
vec.push_back(a[i]);
sort(a,a+15);
bool flag = false;
for (int i = 0; i < 15-1; i++)
{
if (a[i] == a[i + 1])
{
if (flag == false)
{
res.push_back(a[i]);
flag = true;
}
}
else
flag = false;
}
for (int i = 0; i < res.size(); i++)
cout << res[i] << " ";
return 0;
}
也可使用哈希表解决,遍历数组,然后查找哈希表,如果哈希表中没有则加入哈希表,如果哈希表中有,则输出。
int main()
{
int a[] = {1,2,3,4,4,3,2,1,2,3,6,7,8,9,10};
map<int, int> mp;
bool flag = false;
sort(a,a+15);//如果hash表中有
for (int i = 0; i < 15; i++)
{
if (!mp.count(a[i]))
{
mp[a[i]] = i;
flag = false;
}
else
{
if (flag == false)
{
cout << a[i] << " ";
flag = true;
}
}
}
return 0;
}