查找数组最近重复元素

数组中重复的数字

http://www.nowcoder.com/questionTerminal/6fe361ede7e54db1b84adc81d09d8524

映射,以元素为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>

}
全部评论

相关推荐

11-04 14:10
东南大学 Java
_可乐多加冰_:去市公司包卖卡的
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务