1287. Element Appearing More Than 25% In Sorted Array
Description
Given an integer array sorted in non-decreasing order, there is exactly one integer in the array that occurs more than 25% of the time, return that integer.
Example 1:
Input: arr = [1,2,2,6,6,6,6,7,10] Output: 6
Example 2:
Input: arr = [1,1] Output: 1
Constraints:
1 <= arr.length <= 104
0 <= arr[i] <= 105
Solutions
Solution 1: Traversal
We traverse the array \(\textit{arr}\) from the beginning. For each element \(\textit{arr}[i]\), we check if \(\textit{arr}[i]\) is equal to \(\textit{arr}[i + \left\lfloor \frac{n}{4} \right\rfloor]\), where \(n\) is the length of the array. If they are equal, then \(\textit{arr}[i]\) is the element we are looking for, and we return it directly.
The time complexity is \(O(n)\), where \(n\) is the length of the array \(\textit{arr}\). The space complexity is \(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 |
|