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

2022-08-29 17:42:17 字數 770 閱讀 4882

找出陣列中重複的數字。

在乙個長度為 n 的陣列 nums 裡的所有數字都在 0~n-1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。

示例 1:

輸入:

[2, 3, 1, 0, 2, 5, 3]

輸出:2 或 3

限制:

2 <= n <= 100000

初始化雜湊表大小為陣列元素大小,初始值為-1(因為陣列中所有元素大於0)。

遍歷陣列每個數字n,如果雜湊值為0,表示該數字已經存在,直接返回;否則,更新數字n對應位置雜湊值為0表示已經存在。

時間複雜度:o(n)

空間複雜度:o(n)

class solution 

return -1;

}};

排序後,如果存在相鄰兩個數字相等則返回。

時間複雜度:o(nlogn)

空間複雜度:o(1)

class solution 

return -1;

}};

對每個陣列下標位置 i,判斷是否等於nums[i]

如果相等,則判斷下乙個位置。

時間複雜度:o(n)

空間複雜度:o(1)

class solution 

}return -1;

}};

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

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

《劍指offer》陣列相關面試題

在乙個長度為n的陣列裡所有數字都在0 n 1範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複,也不知道重複了幾次,請找出陣列中任意乙個重複的數字。例如,長度為7的陣列,那麼對應的輸出應該是重複的數字2或者3.思路 重排這個陣列,從頭到尾依次掃瞄這個陣列中的每個數字。掃到下標為i的數字m時 首先...

面試題03 二維陣列中查詢 劍指offer系列

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。這是一道考查二維陣列的理解和程式設計能力的題。在二維陣列在記憶體中是連續儲存的。在記憶體中從上到下儲存各行元素,在同一行中按照從左到右...