面试题29—数组中出现次数超过一半的数字
来源:互联网 发布:中国科学院大学知乎 编辑:程序博客网 时间:2024/06/07 20:10
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
代码示例:
#include<iostream>using namespace std;bool MoreThanHalf(int a[], int n, int &res){if (a == NULL || n <= 0)return false;int times = 1;res = a[0];for (int i = 1; i < n; i++){if (times == 0){res = a[i];times++;}else{if (a[i] == res)times++;else{times--;}}}//int count = 0;for (int i = 0; i < n; i++){if (a[i] == res)count++;}if (count * 2 > n)return true;elsereturn false;}int main(){const int n = 9;int a[n] = { 5,0,4,5,6,5,5,8,5};int res = 0;bool flag = MoreThanHalf(a, n, res);if (flag){cout << "超过一半的数字是:" << res << endl;}else{cout << "该数组中没有超过一半的数字!" << endl;}}
阅读全文
0 0
- 面试题:数组中出现次数超过一半的数字
- 面试题:数组中出现次数超过一半的数字
- 剑指offer——面试题29:数组中出现次数超过一半的数字
- 剑指offer 面试题29—数组中出现次数超过一半的数字
- 面试题29—数组中出现次数超过一半的数字
- 面试题29:数组中出现次数超过一半的数字
- [剑指offer][面试题29]数组中出现次数超过一半的数字
- 数组中出现次数超过一半的数字(面试题 29)
- 剑指Offer:面试题29 数组中出现次数超过一半的数字
- 面试题29 数组中出现次数超过一半的数字
- 《剑指Offer》学习笔记--面试题29:数组中出现次数超过一半的数字
- 面试题29:数组中出现次数超过一半的数字
- 面试题29:数组中出现次数超过一半的数字
- 【剑指Offer学习】【面试题29 :数组中出现次数超过一半的数字】
- 面试题29_数组中出现次数超过一半的数字
- 剑指Offer面试题29(java版):数组中出现次数超过一半的数字
- 面试题29数组中出现次数超过一半的数字
- 剑指offer面试题29-数组中出现次数超过一半的数字
- mysql数据库多行转成一列
- cordova学习之五创建ionic1版本的项目
- eclipse Maven插件的安装地址
- linux常用查看日志方法
- 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)
- 面试题29—数组中出现次数超过一半的数字
- android编程之代码布局(三)
- 使用shell重启tomcat
- APP开发流程
- Django——相关知识(二)
- 利用SecureCRT上传、下载文件(使用sz与rz命令)
- Java中判断字符串是否为数字的五种方法
- ROS运行python脚本报错: No module named srv
- apicloud安卓系统下载并安装APK