PAT 1054 求数组中数量超过一半的数字
来源:互联网 发布:软考网络规划师论文 编辑:程序博客网 时间:2024/06/07 01:19
题意:给一组数字,求其中数量超过数组一半的数字。
思路:
由于数字的最大值为2^24,故无法开数组来存。
所以可以用哈希。
但哈希小题大做了,这题的特性是“数量超过一半”
根据剑指offer里的题,我们知道既然超过一半,那么维持一个当前颜色c,每当颜色相同,颜色数量+1,颜色不同,数量-1。而因为答案的数量超过一半,故维持到最后,当前颜色c一定是他。
#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<stack>#include<vector>#include<queue>#include<string>#include<map>using namespace std;#define INF 99999999#define M 605#define N 805int main(){int i,n,m,color;scanf("%d%d",&n,&m);int cn=0;int nowc;color=-1;cn=1;for(i=0;i<n*m;i++){scanf("%d",&color);if(color==nowc)cn++;else {cn--;if(cn==0){nowc=color;cn++;}}}printf("%d\n",nowc);}
阅读全文
0 0
- PAT 1054 求数组中数量超过一半的数字
- 求数组中数量超过一半的数
- 求数组中出现次数超过一半的数字
- 求数组中出现次数超过一半的数字
- 求数组中次数超过一半的数字
- 求数组中出现次数超过一半的数字
- 求数组中出现次数超过一半的数字
- 数组中超过一半的数字
- 数组中超过一半的数字
- 检查数组中超过一半的数字
- 数组中出现超过一半的数字
- 数组中数字超过一半的元素
- 数组中次数超过一半的数字
- 数组中超过一半的数字
- 求数组中超过一半的元素
- 获取数组中超过一半数量的数值
- 数组中超过出现次数超过一半的数字
- 74.数组中超过出现次数超过一半的数字
- javaWeb实战教程3-过滤器filter
- Leetcode 376. Wiggle Subsequence
- javaWeb实战教程4-jdbc连接数据库和junit单元测试
- 记录MySQL遇到的错误
- javaWeb实战教程5-fileupload文件上传
- PAT 1054 求数组中数量超过一半的数字
- dubbo assembly打包
- 《数据结构学习与实验指导》4-7:修理牧场
- 数据库索引
- javaWeb实战教程6-jsp和jstl
- XCode编译报错 Command /usr/bin/codesign failed with exit code 1
- hdu 2616 Kill the monster(dfs)
- javaWeb实战教程7-搭建项目框架
- 从源码剖析PopupWindow 兼容Android 6.0以上版本点击外部不消失