//统计数组中出现次数超过一半的数字
#include <stdio.h>
int Find(int *arr, int len)
{
int num = 0; //当前数字
int times = 0; //当前数字出现的次数
int i = 0;
for (i = 0; i<len; i++)
{
if (times == 0)
{
num = arr[i];
times = 1;
}
else if (arr[i] == num)
times++;
else
times--;
}
return num;
}
int main()
{
int arr[] = { 1, 5, 5.2, 5, 4, 3, 5, 5, 5 };
printf("超过一半的数是:%d\n", Find(arr, sizeof(arr) / sizeof(arr[0])));
return 0;
}
相关文章
- 11-02leedcode-2-数组中出现次数超过一半的数字:
- 11-02剑指 Offer 39. 数组中出现次数超过一半的数字
- 11-02剑指Offer(二十八):数组中出现次数超过一半的数字
- 11-02数组中出现次数超过一半的数字
- 11-02【IT笔试面试题整理】数组中出现次数超过一半的数字
- 11-02c程序设计语言_习题1-13_统计输入中单词的长度,并且根据不同长度出现的次数绘制相应的直方图
- 11-02数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在
- 11-02C语言:对传入sp的字符进行统计,三组两个相连字母“ea”"ou""iu"出现的次数,并将统计结果存入ct所指的数组中。-在数组中找出最小值,并与第一个元素交换
- 11-02c++算法:数组里面出现次数超过一半的数
- 11-02剑指 Offer 39. 数组中出现次数超过一半的数字