// T3 找出重复数字--No2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<map>
#include<iostream>
#include<string>
using namespace std;
//用map代替哈希表找出数组中重复的数字
int FindRepeated(int data[],int length)
{
map<int, int >arrMap;
map<int, int>::iterator iter;
arrMap[data[0]] = 1;
//cout << sizeof(data) << endl;//当数组作为函数参数进行传递的时候,数组就自动退化炒年糕同类型的指针,所以sizeof(data)值为4(32为机器)
for (int i = 1; i < length; i++)
{
iter = arrMap.find(data[i]);
if (iter!=arrMap.end())
{
return data[i];
}
else
{
arrMap[data[i]] = i;
}
}
return -1; //代表没有找到重复的
}
int _tmain(int argc, _TCHAR* argv[])
{
int data[] = { 1, 2, 13, 101, 22, 56, 39 };
cout << sizeof(data)/sizeof(int) << endl;
cout << FindRepeated(data, 7) << endl;
return 0;
}