qduoj 数组中出现最多的元素(补)
来源:互联网 发布:java获取方法执行时间 编辑:程序博客网 时间:2024/05/21 07:14
数组中出现最多的元素
发布时间: 2015年10月6日 10:35 时间限制: 1000ms 内存限制: 256M
给你一个数组,输出里面出现超过1/2的元素。保证有且只有一个解。
第一行是一个整数,表示测试数据的组数 n,n < 1000万
之后每一行都是一个整数。
输出出现超过1/2的那个数字。
复制
511123
1
有很多种做法,写两种速度较高的
1.排一遍序,中间的那个元素就是出现次数超过1/2的,复杂度是排序的复杂度
#include<stdio.h>#include<iostream>#include<algorithm>using namespace std;long long int a[10000005];int main(){int n;scanf("%d",&n);for(int i=0;i<n;i++)scanf("%lld",&a[i]);sort(a,a+n);printf("%lld\n",a[n/2]);return 0;}
2.“寻找多数元素”,看不懂可以在网上搜一搜别人的
他是根据序列的一个特性来搞的:在原序列中去除两个不一样的数,那么在原序列中出现次过了1/2的数,在新序列中出现的次数也一定会超过1/2
不明白可以随便找个序列试试,试试就明白为什么了
做法就是从头遍历,因为对于一个元素,他的下一个元素一定是和他相同或和他不同,不同就把这俩都去掉,相同则需要在多找一个和这个元素不相同的来去掉
复杂度是On,应该是这种题目的最优解
要复习准备考试了。。。具体代码待补!
0 0
- qduoj 数组中出现最多的元素(补)
- QDUOJ 20 - 数组中出现最多的元素
- js统计一个字符串出现最多的字母(或者数组中出现次数最多的元素)
- 统计一个无序数组中出现次数最多的元素
- LINQ 获取当前数组中出现次数最多的元素
- 数组中出现次数最多的元素_legend
- 统计一个无序数组中出现次数最多的元素
- 整型数组中出现次数最多的元素
- 输出数组中出现次数最多的元素
- 统计数组中出现次数最多的元素并输出
- 数组中出现次数最多/最少的元素
- 判断数组中出现次数最多的元素
- js获取array数组中出现次数最多的元素(字符串)
- Leetcode:169. Majority Element(找到数组中出现次数最多的元素)
- java找出一个数组中出现次数最多的那个元素(用HashSet很新颖)
- 数组中重复元素最多的数
- 数组中重复次数最多的元素
- 数组中重复次数最多的元素
- 存储管理
- Effective Java : 枚举和注解
- PAT 乙级 1049. 数列的片段和(20)(得了17)
- 文件上传与下载
- 多看代码
- qduoj 数组中出现最多的元素(补)
- App检测更新
- Tkinter的基本用法
- tomcat-jdbc Pool 源码实现简单分析
- zookeeper单机部署的配置及简单健康检查
- Android 多Module(组件)开发
- 使用http.sys,让delphi 的多层服务飞起来
- git常用命令
- 纯css使用transform实现同心圆导航栏菜单