169. 多数元素

169. 多数元素

原题

java 复制代码
class Solution {
    public int majorityElement(int[] nums) {
        if(nums.length==1){
            return nums[0];
        }
        //数组排序
        Arrays.sort(nums);
        //统计出现最多的次数
        int count = 0;
        //保存结果
        int res = nums[0];
        //指向当前元素
        int i =0;
        //指向当前元素的下一个元素
        int j=i+1;
        while(j<nums.length){
            //如果不相等,则计算出现次数
            if(nums[i]!=nums[j]){
                if(count<j-i){
                    count = j-i;
                    res =nums[i];
                    i=j;
                    j++;
                }
            }
            j++;
        }
        //到这,判断最后一组数是否相等(因为在while循环里不能保证最后一个元素相等的判断)
        //若最后一个元素和nums[i]相等,并且出现次数大于count
        if(count<j-i&&nums[i]==nums[j-1]){
            res =nums[i];
        }
        return res;
    }
}
相关推荐
祈祷苍天赐我java之术5 小时前
解析常见的限流算法
java·数据结构·算法
Shinom1ya_6 小时前
算法 day 34
算法
啊董dong6 小时前
课后作业-2025-10-26
c++·算法·noi
liu****6 小时前
1.模拟算法
开发语言·c++·算法·1024程序员节
小猪咪piggy6 小时前
【算法】day10 分治
数据结构·算法·排序算法
又是忙碌的一天6 小时前
算法学习 13
数据结构·学习·算法
June`6 小时前
前缀和算法:高效解决区间和问题
算法·1024程序员节
再卷也是菜6 小时前
算法基础篇(9)倍增与离散化
c++·算法
pearlthriving7 小时前
list的介绍
数据结构·list·1024程序员节
Lei_3359677 小时前
[数据结构]哈希表、字符串哈希
数据结构·哈希算法·散列表