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
Solution
Python3
class Solution:
def findSpecialInteger(self, arr: List[int]) -> int:
N = len(arr)
freq = N // 4
for i in range(N - freq + 1):
if arr[i] == arr[i + freq]:
return arr[i]