每日刷題 重複 N 次的元素

2021-09-08 21:01:57 字數 1237 閱讀 8001

示例 1:

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

輸出:3

示例 2:

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

輸出:2

示例 3:

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

輸出:5

解答:這道題很簡單很簡單。最直觀的方法就是開闢乙個陣列用來記錄重複元素的個數,這種方法時間複雜度為o(n), 執行時間為線性。

這裡主要介紹乙個線性時間的原地演算法。

我們可以採用計數器的思想,但是這裡由於重複元素的重複次數為n,所以我們應該去除乙個非重複元素。如何去除非重複元素?可以先找到最大值與最小值,從二者中選擇乙個非重複元素。再使用計數器的思想。over.

**:

class

solution

int flag =1;

//cout

(int i =

0; i < a.

size()

; i++)if

( a[i]

== max && flag ==1)

flag--

;else

if( a[i]

== max && flag ==0)

if( flag <0)

max = min;

//此時max可能是min也可能是max

int number = a[0]

, count =

1, k =0;

while

(number == max && k < a.

size()

) number = a[

++k]

;//cout

(int i =

0; i < a.

size()

; i++)if

( a[i]

!= number)

count--

;else

count++;}

return number;}}

;

執行結果:

重複N次的元素

在大小為 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 ...

每日刷題 N皇后

n 皇后問題研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。皇后的攻擊範圍為 自己所在的一行 自己所在的一列 以及自己所在的兩個對角線上。上圖為 8 皇后問題的一種解法。給定乙個整數 n,返回所有不同的 n 皇后問題的解決方案。每一種解法包含乙個明確的 n 皇后問...

leetcode 重複N次的元素

在大小為 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 三種方法時間都差不多。class ...