有序数组中出现次数超过25%的元素
题目要求:
给你一个非递减的 有序 整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的 25%。
请你找到并返回这个整数
解题思路:
- 计算出现次数超过数组元素总数的25%的最小值;
- 遍历数组中的每个不同值,并判断其个数是否大于或等于之前算的最小值;
- 返回符合条件的数。
解题代码:
class Solution:
def findSpecialInteger(self, arr: List[int]) -> int:
#计算出现次数超过数组元素总数的25%的最小值
n = len(arr)//4 +1
#遍历数组中的每个不同值,并判断其个数是否大于或等于之前算的最小值
for i in set(arr):
if arr.count(i) >= n:
return i
我的leetcode:https://leetcode-cn.com/problems/element-appearing-more-than-25-in-sorted-array/submissions/
(“益者三友,友直,友谅,友多闻--《论语·季氏》
”FIGHTING. . . .)