面試題 3 是陣列中重複的數字

2021-08-21 09:23:03 字數 525 閱讀 2851

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

思路一:排序後遍歷陣列

class solution 

}for(int k=0;k思路二:若陣列為 1 3 2 1 5

遍歷第一次:第0個數為1不為0,且1和第1個數不相等,則交換1和第1個數3,得到3 1 2 1 5

遍歷第二次:第0個數為3不為0,且3和第三個數不相等,則交換3和第3個數1,得到1 1 2 3 5

遍歷第三次:第0個數為1不為0,1和第乙個數1相等,則1為要找的數。

class solution

for(int i=0;ielse

swap(numbers[i],numbers[numbers[i]]);

} }

return false;

}};

面試題3 陣列中重複的數字

在乙個長度為n的陣列裡的所有數字都在0 n 1範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。1.方法一 把輸入的資料進行排序,排序後再判斷有無重複的數字,時間複雜...

面試題3 陣列中重複的數字

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

面試題3 陣列中重複的數字

面試題3 找出陣列中重複的數字。在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 1 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限制 2 n 100...