🤖
AI审核中

READING IN THE WILD · 读一篇手记

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

文章摘要

本文介绍了 LeetCode 第 1287 题:在一个非递减有序整数数组中,恰有一个元素出现次数超过数组长度的 25%。要求找出该元素。题目给出数组长度上限 10⁴,元素值范围 0~10⁵。解法利用数组有序性,只需遍历至 `arr.length - arr.length/4`,检查 `arr[i]` 与 `arr[i + arr.length/4]` 是否相等,若相等即为满足条件的元素,时间复杂度 O(n),空间复杂度 O(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 {
    public int findSpecialInteger(int[] arr) {
        for(int i = 0,len = arr.length / 4;i < arr.length - len;i++){
            if(arr[i] == arr[i + len]){
                return arr[i];
            }
        }
        return arr[0];
    }
}
0 条评论

如果你觉得文章对你有帮助,那就请作者喝杯咖啡吧

评论区 0

头像
 0 条评论