面试题 17.10 主要元素

​​题目来源:

leetcode题目,网址:面试题 17.10. 主要元素 - 力扣(LeetCode)

解题思路:

首先,顺序遍历数组,将不同的数字消去,最后留下的数字若计数小于等于 0,则不存在主要元素。然后遍历数组,对最后留下的数字计数,判断其是否是主要元素。

解题代码:

复制代码
class Solution {
    public int majorityElement(int[] nums) {
        int res=0;
        int cnt=0;
        for(int num:nums){
            if(num==res){
                cnt++;
            }else{
                cnt--;
                if(cnt<0){
                    res=num;
                    cnt=1;
                }
            }
        }
        if(cnt<=0){
            return -1;
        }
        
        int count=0;
        for(int num:nums){
            if(num==res){
                count++;
            }
        }
        return count>nums.length/2?res:-1;
    }
}
复制代码

总结:

官方题解也是一样的思路。通过 Boyer-Moore 投票算法得到可能的主要元素或表名不存在主要元素,然后判断可能的主要元素是否是主要元素。


相关推荐
再难也得平1 分钟前
力扣238. 除自身以外数组的乘积(Java解法)
python·算法·leetcode
xuansec2 分钟前
【JavaEE安全】Java第三方组件安全漏洞(Log4J JNDI/FastJson 反射)
java·安全·java-ee
vx+_bysj68692 分钟前
【免费领源码】基于springboot欣欣汽车租赁系统 计算机毕业设计项目推荐上万套实战教程JAVA,node.js,C++、python、大屏数据可视化
java·spring boot·mysql·汽车
榴月子5 分钟前
Mac 安装 Homebrew、 Java 和 Kotlin
java·macos·kotlin
vivo互联网技术5 分钟前
从业务开发视角聊聊可观测体系建设
java·服务器·监控
重庆小透明6 分钟前
微服务,不仅仅是“小服务”
java·后端·spring cloud·微服务·云原生·架构
降临-max10 分钟前
JavaWeb企业级开发---Maven高级
java·笔记·学习·maven
丶小鱼丶11 分钟前
数据结构和算法之【二分查找】
java·数据结构·算法
于先生吖15 分钟前
Java 同城服务同城租房系统源码 完整项目实现
java·开发语言
与数据交流的路上16 分钟前
oceanbase-长事务排查
java·数据库·oceanbase