You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
=end
# @param {Integer[]} arr
# @return {Integer}
def find_special_integer(arr)
return arr[0] if arr.size < 3
size = arr.size
appearance = size.fdiv(4)
counter = 1
(1...size).each do |i|
value = arr[i]
if arr[i - 1] == value
counter += 1
else
counter = 1
end
return value if appearance < counter
end
end
# **************** #
# TEST #
# **************** #
require "test/unit"
class Test_find_special_integer < Test::Unit::TestCase