剑指Offer:数组中出现次数超过一半的数字
2016-08-05 16:46
387 查看
数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。这题与微信红包的题目类似,也在leetcode上做过。
class Solution { public: int MoreThanHalfNum_Solution(vector<int> numbers) { if(numbers.empty()) return 0; sort(numbers.begin(),numbers.end()); int sz=numbers.size(),res=numbers[sz/2],count{0}; for(const int &im:numbers){ if(res==im){ ++count; } } if(count>sz/2) return res; else return 0; } };
相关文章推荐
- [译]RxJS 5.X基础篇
- 剑指Offer:字符串的排列
- JavaScript省级联动
- Java WeakReference的理解与使用
- ionic 的项目实现从手机相册选取图片或拍照并上传至服务器
- Javascript之计时器知识总结
- 前端网页制作-javaScripe 初学笔记
- nodejs安装和环境搭建
- fedora国内源常见配置
- XML和JSON的区别
- C#根据html生成PDF
- Golang之bytes.buffer
- Loadrunner模拟JSON接口请求进行测试
- JS中对Cookie的操作详解
- css基础重要几点
- 随机获取数组的子集
- html select
- The method getTextContent() is undefined for the type Node
- JSON学习笔记
- jQuery、zepto选择同时包含两个class的元素