算法 出现次数超过一半的数字-(哈希+摩尔投票)

news/2024/7/5 7:17:38

牛客网: BM51

题目: 数组中只有1个数字出现次数超过一半,找出这个数字

思路: 投票计数vote==0, 遍历数组,vote为0时,num赋值为当前值, num与当前值相等时,vote增加, 否则vote减小,只有1个数字出现次数超过一半,最终vote为正,同时num值即为对应的值。

代码:

// go

package main
// import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param numbers int整型一维数组 
 * @return int整型
*/
func MoreThanHalfNum_Solution( numbers []int ) int {
    // write code here
    vote := 0
    num := -1
    for _, v := range numbers {
        if vote == 0 {
            num = v
        }
        if num == v {
            vote++
        } else {
            vote--
        }
    }
    return num
}


http://lihuaxi.xjx100.cn/news/1572146.html

相关文章

【SpringMVC】web.xml和spring_mvc.xml文件配置

1.web.xml ​ <web-app><display-name>Archetype Created Web Application</display-name><!-- 处理编码的过滤器--> <filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.f…

到广阔的边缘市场去,浪潮信息首次发布全栈边缘计算软硬件新品

出品 | CSDN 云计算 智慧时代&#xff0c;一切皆计算&#xff0c;早已不再是一句口号。据国际研究机构 IDC 数据显示&#xff0c;2023 年超过 50%的企业新增 IT 基础设施会部署在边缘&#xff0c;而 Gartner 研究显示&#xff0c;到 2025 年&#xff0c;超过 75%的数据生成和数…

springboot如何接入netty,实现在线统计人数?

springboot如何接入netty&#xff0c;实现在线统计人数&#xff1f; Netty 是 一个异步事件驱动的网络应用程序框架 &#xff0c;用于快速开发可维护的高性能协议服务器和客户端。 Netty ​ 是一个 NIO 客户端服务器框架 ​&#xff0c;可以快速轻松地开发协议服务器和客户端等…

伦敦银如何选择最优的交易方法

经常有投资者会问&#xff0c;伦敦银投资中如何选择最好的方法呢&#xff1f;我们进行伦敦银投资&#xff0c;目的就是找到一个能够盈利的交易方法&#xff0c;它能够使我们大部分交易都是盈利&#xff0c;少部分交易亏损&#xff0c;但是可以将亏损控制在一定的范围之内&#…

江新安教授受邀中国医药教育协会进行《新药行业研发管理人员岗位能力提升实操》培训

近日&#xff0c;科济管线创始人江新安教授受邀中国医药教育协会进行《新药行业研发管理人员岗位能力提升实操》培训。此次培训&#xff0c;江新安教授讲解了从产品开发项目到目标制定、启动、计划、控制到项目收尾的完整流程和工具。助力制药企业提高药品研发水平&#xff0c;…

Spring面试题10:Spring的XMLBeanFactory怎么使用

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring的XMLBeanFactory怎么使用 XmlBeanFactory是Spring框架中的一个实现类,它是BeanFactory接口的一个具体实现。XmlBeanFactory的主要作用是通…

使用ALU,RAM,寄存器打造一个CPU

CPU简介 计算机的心脏是中央处理单元&#xff0c;简称“CPU” 。这篇文章就利用前几篇文章中提到过的ALU,RAM,寄存器组件做一个CPU。 CPU负责运行程序&#xff0c;程序是由一个个操作组成的&#xff0c;这些操作叫做指令&#xff0c;因为他们“指示”计算机要做什么. CPU能做什…

在微信公众平台 设置小程序域名白名单

首先 我们打开微信公众平台 微信公众平台 然后扫描二维码 登录自己需要操作的小程序 这里特别声明一下此操作必须是企业账号创建的小程序 然后 在左侧菜单中选择开发下的 开发管理 然后在这里选择 开发设置 然后 下拉找到 服务器域名 点击 修改 按钮 然后会需要你扫个二维…