查找数组最近重复元素

数组中重复的数字

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>

}
全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 14:23
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务