陣列中重複的數字

2021-09-11 08:41:52 字數 722 閱讀 9473

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

思路1:用乙個新陣列記錄每個數字出現的個數。因為所有數字都在0到n-1範圍內,新陣列大小可以設為n,相應的下標對應原陣列中的數字。題目中只需要輸出第乙個重複的數字,則原陣列從頭遍歷,對應的新陣列的標記不為0就可以確定是重複數字。

class solution 

int* temp = new int[length];

for(int i=0;i思路2:不借助額外陣列,將原陣列進行重排。由於所有數字都在0到n-1範圍內,那麼可以將陣列的下標和數字對應起來。比如numbers[0]=0; numbers[1]=1; 從頭遍歷陣列,將數字調到相應的位置上,比如numbers[0]=2,numbers[0]和numbers[2]交換,直到numbers[0]=0,再判斷下一位。如果數字不在其對應位置,且對應位置已經有該數字了,則判斷該數字是重複數字。

class solution

int i=0;

while(iint temp=numbers[i];

numbers[i]=numbers[temp];

numbers[temp]=temp;}}

return false;

}};

陣列 陣列中重複的數字

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

陣列中重複的數字

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

陣列中重複的數字

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