数组中出现次数超过一半的数字

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。 由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 如果不存在则输出0。 题目分析: 由于要输出的这个数超过数组长度的一半 所以不难理解 如果存在的话 这个数一定是排完序后的数组的中间元素 因此我们将数组有序之后 用一个count记录... 阅读详情

题目描述

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。

class Solution {
public:
    int MoreThanHalfNum_Solution(vector<int> numbers) {
        int ans = numbers[0];
        int flag = 1;
        for(int i = 1;i < numbers.size();i++)
        {
           if(flag>0)
           {
               if(ans == numbers[i])
                   flag++;
               else
                   flag--;
           }
            else
            {
                flag = 1;
                ans = numbers[i];
            }
        }
        
        int num = 0;
        for(auto item:numbers)
        {
            if(ans == item)
                num++;   //验证该数字是否超过一半
        }
        if(num>(numbers.size()/2))
            return ans;
        else
            return 0;
    }
};

 

数组中出现次数超过一半的数字(Java) 题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1, 2, 3, 2, 2, 2, 5, 4, 2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。第一思路:... 阅读详情

相关推荐

别再死记硬背MAML原理了!用PyTorch手撸一个Omniglot小样本分类器(附完整代码)

本文详细介绍了如何使用PyTorch实现MAML(模型无关的元学习)算法,构建一个Omniglot小样本分类器。通过实战代码演示,帮助读者理解MAML的双层优化原理,并提供了完整的训练循环、网络架构设计及调试技巧,适合想要掌握元学习技术的开发者。

weixin_29191669的博客 132

出现次数超过一半的数字

题目描述 题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。 分析与解法 一个数组中有很多数,现在我们要找出其中那个出现次数超过总数一半的数字,怎么找呢?大凡当我们碰到某一个杂乱无序的东西时,我们人的内心本质期望是希望把它梳理成有序的。所以,我们得分两种情况来讨论,无序和有序。 解法一 如果无序,那么我们是不是可以先把数组中所有这些数字先进行排序(至

qisefengzheng的专栏 总有一天你将破蛹而出 895

WebRTC TURN协议初识及turnserver实践

但是TURN协议对服务器有很高的依赖,服务器在带宽和集群上有很大的压力,所以TURN协议通常是当作ICE协议中的一部分来使用。ChannelData message不使用STUN头部,而使用一个4字节的头部,包含了一个称之为信道号的值(channel number),每一个使用中的信道号都与一个特定的peer绑定,即作为对等端地址的一个记号。该relay地址是个公网地址,可以看作是客户端A在公网上的一个代理,任何想要联系A的客户端,只要将数据发送到A的relay地址就可以了。

yinshipin007的博客 566

【五种方法解决】找出数组中出现次数超过数组长度一半的数字

剑指offerJZ28:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 这道题是在面试时常问的一道题,有多种解法,我们分别看一下; 方法一:利用map 利用map的key -value模型来存放arr[i]和相对应出现的次数,最后用次数去跟数组长度一半去比较,大于则就是;比如1,2,3,2,2,2,5,4,2;就是1出现一次、2出现5次、3.4.

chris__x的博客 1万+

【毕设】基于LoRa的物联网控制器:从原理图到PCB的完整硬件设计指南

本文提供了一份完整的基于LoRa的物联网控制器硬件设计指南,涵盖从系统框图、原理图设计到PCB布局布线的全流程。详细讲解了电源电路、单片机最小系统、信号接口以及LoRa无线模块等核心模块的设计要点与抗干扰技巧,并分享了实用的调试心得,旨在帮助电子、物联网专业学生顺利完成毕业设计,掌握低功耗远距离物联网节点的硬件开发实践。

weixin_42126677的博客 307

保姆级教程:用CH34xSerCfg工具修改USB转串口芯片的VID/PID,避免驱动冲突

本文详细介绍了如何使用CH34xSerCfg工具修改USB转串口芯片的VID/PID,解决驱动冲突问题。通过实战案例和配置技巧,帮助开发者高效管理嵌入式设备,避免常见的USB设备识别问题,提升开发效率。

weixin_30924239的博客 225

出现次数超过一半的数(面试题)

出现次数超过一半的数 题目描述 数组中有一个数出现的次数超过了数组长度的一半,找出这个数。 分析与解法 因为不确定给定的数组是无序还是有序的,所以要分情况讨论。 解法一:排序 如果给定的数组是无序的,那么可以先对数组进行排序(至于排序方法可选取最常用的快速排序)。排完序后遍历数组,在遍历整个数组的同时统计每个数的出现次数,然后把那个出现次数超过一半的数直

LzyRapX 5593

Caffeine:为每个元素动态设置过期时间

Caffeine利用expireAfter方法实现为每个元素动态设置过期时间

大数据开发、JAVA开发、人工智能AI 1万+

【算法】数组中出现次数超过一半的数字

算法练习~

qq_61862008的博客 745

Android16 动态隐藏systemUI右侧音量条

本文介绍了如何屏蔽SystemUI系统音量条并显示自定义音量控制条的实现方法。主要通过两个步骤:1)在编译脚本中定义控制属性persist.rp.show.volume.dialog=off来隐藏系统音量条;2)修改SystemUI源码中的VolumeDialogImpl.java文件,在showH方法中根据属性值判断是否显示系统音量条。当属性值为off时直接return,从而屏蔽系统音量条的显示,实现自定义音量控制条的替代显示。该方法通过系统属性控制显示状态,具有灵活可控的特点。

tzj1058756809的博客 781

社会网络仿真软件:NetLogo_(14).社会网络数据导入与导出

在NetLogo中,社会网络的仿真不仅依赖于模型的内部逻辑,还需要能够灵活地导入和导出数据。这使得用户可以利用外部数据来初始化模型,或者将模型的运行结果导出以便进一步分析。本节将详细介绍如何在NetLogo中实现社会网络数据的导入和导出,包括常见的数据格式和具体的代码示例。

kkchenjj的博客 600

快速找出数组中出现次数超过一半的数字

“只要不是特别大的内存开销,时间复杂度比较重要。因为改进时间复杂度对算法的要求更高。” ——吴斌(NVidia,Graphics Architect) 同样是查找,如果是顺序查找需要O(n)的时间;如果输入的是排序的数组则只需要O(logn)的时间;如果事先已经构造好了哈希表,那查找在O(1)时间就能完成。我们只有对常见的数据结构和算法都了然于胸,才能在需要的时候选择合适的数据结构...

爱穿格子裤的专栏 2万+

数据分享】中国12.5m数字高程模型(DEM)数据(分省)

数据名称:ALOS 12.5m DEM 数据。数据名称:ALOS 12.5m DEM 数据。数据大小:61.5GB。空间分辨率:12.5m。数据大小:61.5GB。空间分辨率:12.5m。

JData_Engineer的博客 5392

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。因为2在数组中出现的次数超过5次,所以输出2. public class overhalfprint { public static int moreThanHaft(int[] num){ int result = -1; ...

Sophisticate11的博客 1599

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java——数组中出现次数超过一半的数字

给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。

m0_60867520的博客 848

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

数组中出现次数超过一半的数字(JS)

题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 function MoreThanHalfNum_Solution(numbers) { let len = numbers.length; let i = ...

Jane_96的博客 1018

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Java编程题: 数组中出现次数超过一半的数字

数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 一种方法是,用HashMap记录数组中每个元素出现的次数,然后进行遍历,不过感觉下面的思路比较简单巧妙一些。 方法一: 数组中有一个数字出现的次数超过数组长度...

长不大的大灰狼 1010

数组中一个数字出现的次数超过了数组长度的一半,找出这个数字

问题:数组中一个数字出现的次数超过了数组长度的一半,找出这个数字。 我这里给出的是只考虑了正常情况的算法,没有考虑数组无效,以及不符合次数超过数组长度一半的情况。 思路: (1)将数组排序(排序的原因是为了下面方便统计出次数) (2)排好序后,分别统计每个元素出现的次数,并对应记录相应的元素。 (3)找出次数最多的元素。 (补充,其实排好序后不需要统计次数了,应为这个数字出现的次数超过

hairongtian的专栏 3797
上一篇: see-1. Two Sum
下一篇: 链表中倒数第k个结点
云水谣CS
博客等级 码龄9年 8粉丝 268原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值