leetcode_1287 有序数组中出现次数超过25%的元素

69 阅读1分钟

要求

给你一个非递减的 有序 整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的 25%。

请你找到并返回这个整数

示例:

输入:arr = [1,2,2,6,6,6,6,7,10]
输出:6

提示:

  • 1 <= arr.length <= 10^4
  • 0 <= arr[i] <= 10^5

核心代码

class Solution:
    def findSpecialInteger(self, arr: List[int]) -> int:
        cnt  = 1
        for i,num in enumerate(arr):
            if i:
                if num == arr[i - 1]:
                    cnt += 1
                else:
                    cnt = 1
            if cnt > len(arr) / 4:
                return num

image.png

解题思路:因为是有序数组,所以我们直接对其进行统计计数,计数后和len(arr)的四分之一比较大小即可。