//数组中重复的数字
#include<algorithm>
#include<map>
#include<iostream>
using namespace std;
//数组中重复的数字 改变数组,时间复杂度o(nlogn),空间o(1)
void find(int *arr)
{
sort(arr,arr+7);
for (int i = 0; i < 7; i++)
{
int j;
for ( j = 1; arr[i] == arr[i + j]; j++);
if (j != 1){
cout << arr[i] << endl;
i = i + j - 1;
}
}
}
//找出全部 ,时间复杂度o(n),空间复杂度o(n)
void find1(int *arr,int length)
{
map<int, int> map;
for (int i = 0; i < length; i++)
{
++map[arr[i]];
}
for (auto var : map)
{
if (var.second != 1)
cout << var.first << endl;
}
}
int main()
{
int arr[7] = { 2, 2, 4, 5, 7, 8, 9 };
//find(arr);
find1(arr, 7);
system("pause");
return 0;
}