劍指offer 50 陣列中重複的數字

2021-08-23 14:13:30 字數 907 閱讀 6622

在乙個長度為n的陣列裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。 例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。

這道題是比較基礎,主要思路如下:

首先判斷陣列是否為空,若為空直接返回false;

然後初始化集合及其對應雜湊表,利用雜湊表統計每個元素出現的次數;

之後遍歷整個集合,獲取第乙個出現次數大於1的元素,並將其加入重複陣列,最終返回true,若無則直接返回false;

#include

#include

#include

#include

using

namespace std;

class

solution

map<

int,

int> number_hash;

set<

int> number_set;

for(

int i =

0; i < length ; i++

)int cnt =0;

set<

int>

::iterator it;

for(it = number_set.

begin()

; it != number_set.

end(

); it++)}

return

false;}

};intmain()

bool flag = s.

duplicate

(array,n,duplication);if

(flag)

cout

}

劍指Offer(50) 陣列中重複的數字

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。1 將陣列連線成字串變數stringbuilder 2 按位遍歷字串...

劍指offer 50 陣列中重複的數字

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。思路 解法一 雜湊表 時間o n 空間o n class solut...

《劍指 Offer》 50 陣列中重複的數字

陣列 在乙個長度為 n 的陣列裡的所有數字都在 0 到 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如 input output 2要求時間複雜度 o n 空間複雜度 o 1 因此不能使用排序的方法,也不能使用額外...