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

2022-07-24 09:30:13 字數 407 閱讀 2859

陣列中的數字都在0~n-1範圍內。如果這個陣列沒有重複元素,那麼在對這個陣列排完序後,數字 i 將出現在下標 i 處。有些位置可能存在多個數字,同時有些位置可能沒有數字。

遍歷陣列,當掃瞄到下標為 i 的數字時,首先比較這個數字(用m表示)是不是等於i。

如果是,則接著掃瞄下乙個數字;如果不是,則再拿他和第m個數字進行比較。如果他和第m個數字相等,就找到了乙個重複的數字;如果他和第m個數字不相等,就把第i個數字和第m個數字交換

接下來重複這個比較和交換的過程,直到我們發現乙個重複的數字。

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

題目二 不修改陣列找出重複的數字 相似題目 在乙個長度為n的陣列裡的所有數字都在0 n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。解決這個問題的乙個簡單的...

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

在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。只輸出第乙個重複的數字 示例 1 輸入 2,3,1,0,2,5,3 輸出 2解決辦法 使用hashset 如果出現...

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

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