QUESTION:
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
EXPLANATION:
逻辑简单, 就不赘述了.
SOLUTION:
class Solution {
func findSpecialInteger(_ arr: [Int]) -> Int {
var result:Int = arr[0]
var pre:Int = arr[0]
var preCount:Int = 1;
var limit:Int = Int(Double(arr.count) * 0.25)
for index in 1..<arr.count {
if (arr[index] == pre) {
preCount += 1
} else {
pre = arr[index]
preCount = 1
}
if (preCount > limit) {
result = pre
break
}
}
return result
}
}