映射,以元素为key,数组索引为value
遍历数组,若map中已经存在说明重复,取最小索引;不存在就添加到map中。
int duplicate(vector<int>& numbers) {
if(!numbers.size()) return -1;
map<int, int> m;
int index = numbers.size();
for(int i = 0; i < numbers.size(); ++i){
if(m.find(numbers[i]) != m.end()){
index = min(index, m[numbers[i]]);
}
else{
//m.insert(pair<int, int>(numbers[i], i))
m.insert(make_pair(numbers[i], i));
}
}
return index == numbers.size() ? -1 : numbers[index];</int>

}