博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题29 数组中出现次数超过一半的数字
阅读量:5033 次
发布时间:2019-06-12

本文共 977 字,大约阅读时间需要 3 分钟。

题目描述

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
1 class Solution { 2 public: 3     int MoreThanHalfNum_Solution(vector
numbers) { 4 if (numbers.size() == 0) 5 return 0; 6 int result = numbers[0]; 7 int times = 1, count = 0; 8 for (int i = 1; i < numbers.size(); i++){ 9 if (times == 0){10 result = numbers[i];11 times = 1;12 }13 else if (numbers[i] == result)14 times++;15 else16 times--;17 }18 for (int i = 1; i < numbers.size(); i++){19 if (numbers[i] == result){20 count++;21 }22 }23 if (count >= numbers.size() / 2)24 return result;25 else26 return 0;27 28 }29 };

 

 

转载于:https://www.cnblogs.com/wanderingzj/p/5357460.html

你可能感兴趣的文章
获取手机验证码修改
查看>>
数据库连接
查看>>
python中数据的变量和字符串的常用使用方法
查看>>
等价类划分进阶篇
查看>>
delphi.指针.PChar
查看>>
Objective - C基础: 第四天 - 10.SEL类型的基本认识
查看>>
java 字符串转json,json转对象等等...
查看>>
极客前端部分题目收集【索引】
查看>>
第四天 selenium的安装及使用
查看>>
关于js的设计模式(简单工厂模式,构造函数模式,原型模式,混合模式,动态模式)...
查看>>
KMPnext数组循环节理解 HDU1358
查看>>
android调试debug快捷键
查看>>
【读书笔记】《HTTP权威指南》:Web Hosting
查看>>
Inoodb 存储引擎
查看>>
数据结构之查找算法总结笔记
查看>>
Linux内核OOM机制的详细分析
查看>>
Android TextView加上阴影效果
查看>>
Android开源框架AsyncHttpClient (android-async-http)使用
查看>>
Requests库的基本使用
查看>>
C#:System.Array简单使用
查看>>