java演算法題-重複 N 次的元素

java演算法題-重複 N 次的元素

在leetcode(https://leetcode-cn。com/)上看到一道有趣的演算法題:

在大小為 2N 的陣列 A 中有 N+1 個不同的元素,其中有一個元素重複了 N 次。

返回重複了 N 次的那個元素。

示例 1:

輸入:[1,2,3,3]

輸出:3

示例 2:

輸入:[2,1,2,5,3,2]

輸出:2

示例 3:

輸入:[5,1,5,2,5,3,5,4]

輸出:5

提示:

4 <= A。length <= 10000

0 <= A[i] < 10000

A。length 為偶數

這樣的題你會怎麼用java實現呢?

分享一下我的解題思路:

public int repeatedNTimes(int[] A) { Arrays。sort(A); int left = 0; int right = A。length - 1; while (left < right) { if (A[left] == A[left + 1]) { return A[left]; } else if (A[right] == A[right - 1]) { return A[right]; } left++; right——; } return 0; }

結果:

輸入:[1,2,3,3]

輸出:3

leetcode上對該答案的分析如下:

102 / 102

個透過測試用例

狀態:

透過

執行用時:

7 ms

, 在所有 Java 提交中擊敗了35。06%的使用者

記憶體消耗:

39.5 MB

, 在所有 Java 提交中擊敗了54。49%的使用者

執行用時分佈圖表

java演算法題-重複 N 次的元素

執行消耗記憶體分佈圖表

java演算法題-重複 N 次的元素

大家有更好的解題思路嗎?歡迎在評論區作答哈~