1287. 有序数组中出现次数超过25%的元素
题目描述
给你一个非递减的 有序 整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的 25%。
请你找到并返回这个整数
示例:
输入:arr = [1,2,2,6,6,6,6,7,10] 输出:6
提示:
1 <= arr.length <= 10^4
0 <= arr[i] <= 10^5
解法
方法一:遍历
我们从头开始遍历数组 \(\textit{arr}\),对于每个元素 \(\textit{arr}[i]\),我们检查 \(\textit{arr}[i]\) 是否等于 \(\textit{arr}[i + \left\lfloor \frac{n}{4} \right\rfloor]\),其中 \(n\) 是数组的长度。如果等于,那么 \(\textit{arr}[i]\) 就是我们要找的元素,直接返回即可。
时间复杂度 \(O(n)\),其中 \(n\) 是数组 \(\textit{arr}\) 的长度。空间复杂度 \(O(1)\)。
1 2 3 4 5 6 |
|
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 |
|
1 2 3 4 5 6 7 8 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|