剑指offer(25)-数组中出现次数超过一半的数字
来源:互联网 发布:视频软件大全 编辑:程序博客网 时间:2024/06/01 19:52
题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
代码
class Solution {public: int MoreThanHalfNum_Solution(vector<int> numbers) { int n = numbers.size(); if (n == 0) return 0; int num = numbers[0], count = 1; for (int i = 1; i < n; i++) { if (numbers[i] == num) count++; else count--; if (count == 0) { num = numbers[i]; count = 1; } } // Verifying count = 0; for (int i = 0; i < n; i++) { if (numbers[i] == num) count++; } if (count * 2 > n) return num; return 0; }};
0 0
- 剑指offer--数组中出现次数超过一半的数字
- 《剑指offer》数组中出现次数超过一半的数字
- 剑指offer:数组中出现次数超过一半的数字
- 【剑指Offer】数组中出现次数超过一半的数字
- 剑指offer:数组中出现次数超过一半的数字
- 数组中出现次数超过一半的数字||剑指offer
- 剑指offer 数组中出现次数超过一半的数字
- 剑指offer:数组中出现次数超过一半的数字
- [剑指offer]数组中出现次数超过一半的数字
- 《剑指offer》-数组中出现次数超过一半的数字
- 剑指offer|数组中出现次数超过一半的数字
- 剑指offer-数组中出现次数超过一半的数字
- 《剑指offer》数组中出现次数超过一半的数字
- 剑指offer - 数组中出现次数超过一半的数字
- 剑指Offer:数组中出现次数超过一半的数字
- 剑指offer-数组中出现次数超过一半的数字
- 剑指offer:数组中出现次数超过一半的数字
- 剑指offer 数组中出现次数超过一半的数字
- 浅谈算法和数据结构: 四 快速排序
- 整理了一份React-Native学习指南
- qt生成的exe可执行程序打包到其他电脑上执行时jpg、gif图片不能正常显示,但png等其他格式可以显示
- 关于Android自定义Dialog细节问题
- 浅谈算法和数据结构: 五 优先级队列与堆排序
- 剑指offer(25)-数组中出现次数超过一半的数字
- 两台Linux系统之间传输文件的几种方法
- Js实现Base64编码、解码
- 什么才是mvc?
- tomcat环境JDK因素排除
- 浅谈算法和数据结构: 六 符号表及其基本实现
- Flume源码分析—数据流转框架分析(五)
- 用省略号代替span中的长文字
- SQLite小白成长记,创建数据库,创建表,版本的重要性,没有创建项