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

2021-10-22 16:28:51 字數 561 閱讀 6321

第一種解法:

新建乙個陣列arr並初始化為0,以輸入陣列的值作為序號,每當輸入乙個值便使得新建的陣列該位置+1,每當輸入乙個數之後檢查該位置的值是否≥1,返回true則return這個值,**如下:

class

solution

}return ans;}}

;

第二種解法:

鴿巢原理。把nums[temp]上的值放到temp這個位置上,如果兩個位置的數一樣了,那就代表重複了,時間複雜度o(n),空間複雜度o(1),**如下:

class

solution

}return-1

;}};

第三種解法:

原地陣列。時間複雜度o(n),空間複雜度o(1)。把nums[temp]上的值的索引的位置的值變成負的,每次判斷索引的位置的值是不是負的,如果為負的就代表之前已經有乙個相同的值出現過了。**如下:

class

solution

return0;

}};

劍指offer03 陣列中重複的數字

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

劍指Offer03 陣列中重複的數字

劍指offer典型題整理 爭取做最好的題解 題目描述 在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限...

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

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