加载中...
1287-有序数组中出现次数超过25%的元素(Element Appearing More Than 25% In Sorted Array)
发表于:2021-12-03 | 分类: 简单
字数统计: 321 | 阅读时长: 1分钟 | 阅读量:

原文链接: https://leetcode-cn.com/problems/element-appearing-more-than-25-in-sorted-array

英文原文

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

中文题目

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

请你找到并返回这个整数

 

示例:

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

 

提示:

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

通过代码

高赞题解

解题思路

  1. 求出 25% 对应的出现次数threshold
  2. 遍历数组
  3. 由于是有序数组,只需比较 当前位置 i 值和 i + threshold的值是否相等即可
    image.png

代码

class Solution {
    public int findSpecialInteger(int[] arr) {
        int threshold = arr.length / 4;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i + threshold] == arr[i]) {
                return arr[i];
            }
        }
        return 0;
    }
}

统计信息

通过次数 提交次数 AC比率
16138 26825 60.2%

提交历史

提交时间 提交结果 执行时间 内存消耗 语言
上一篇:
1288-删除被覆盖区间(Remove Covered Intervals)
下一篇:
1627-带阈值的图连通性(Graph Connectivity With Threshold)
本文目录
本文目录