剑指3题解 | #数组中重复的数字#
数组中重复的数字
https://www.nowcoder.com/practice/6fe361ede7e54db1b84adc81d09d8524
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param numbers int整型vector * @return int整型 */ // 本题利用map容器的成对特性,以元素为下标,计算元素个数,一旦碰到个数超过1的,则返回 int duplicate(vector<int>& numbers) { // write code here // 使用map容器,返回需要再次递增的元素 map<int, int> m; for(int i = 0; i < numbers.size(); ++i) // 遍历数组 { if (m[numbers[i]] > 0) { // 若之前下标有重复过,那么就可以返回了 return numbers[i]; } m[numbers[i]]++; // 统计元素个数,元素就是下标 } return -1;//没有重复的,则表示非法输入 } };
挤挤刷刷! 文章被收录于专栏
记录coding过程