題目鏈接:數組中重複的數字
題意:
在一個長度爲n的數組裏的所有數字都在0到n-1的範圍內。 數組中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出數組中任意一個重複的數字。 例如,如果輸入長度爲7的數組{2,3,1,0,2,5,3},那麼對應的輸出是第一個重複的數字2。
解題思路
利用map記錄每個數字的個數就可以
class Solution {
public:
// Parameters:
// numbers: an array of integers
// length: the length of array numbers
// duplication: (Output) the duplicated number in the array number
// Return value: true if the input is valid, and there are some duplications in the array number
// otherwise false
bool duplicate(int numbers[], int length, int* duplication) {
map<int, int> m;
m.clear();
for(int i = 0; i < length; i++){
if(m[numbers[i]] == 1){
*duplication = numbers[i]; // 輸出重複數字
return true;
}
m[numbers[i]]++; // 數字出現次數
}
return false;
}
};