博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数众数
阅读量:6114 次
发布时间:2019-06-21

本文共 1220 字,大约阅读时间需要 4 分钟。

有序整数序列,数出所有众数及其个数

模块1:线性扫描

模块2:cnt计数:条件:遇见不等,计a[i-1]的cnt

 

notice: 最后一个数一定不会入栈,需要单独处理

1 #include 
2 #include
3 #include
4 using namespace std; 5 void findMode(vector
&a, stack
&x, stack
&y){ 6 int cnt = 1; 7 y.push(-1); 8 for (int i = 1; i < a.size(); i++){ 9 if (a[i] == a[i-1])10 cnt++;11 else{12 if (cnt == y.top()){13 x.push(a[i-1]);14 y.push(cnt);15 }16 else if (cnt > y.top()){17 while( !x.empty() )18 x.pop();19 while( !y.empty() )20 y.pop();21 x.push(a[i-1]);22 y.push(cnt);23 }24 cnt = 1;25 }26 }27 if (cnt == y.top()){28 x.push(a[a.size()-1]);29 y.push(cnt);30 }31 else if (cnt > y.top()){32 while( !x.empty() )33 x.pop();34 while( !y.empty() )35 y.pop();36 x.push(a[a.size()-1]);37 y.push(cnt);38 }39 }40 int main(){41 vector
a;42 stack
x, y;43 a.push_back(1);44 a.push_back(2);45 a.push_back(3);46 findMode(a, x, y);47 while( !x.empty() || !y.empty() ){48 cout << x.top() << " " << y.top() << endl;49 x.pop();50 y.pop();51 }52 return 0;53 }

 

转载于:https://www.cnblogs.com/celahir/p/5149280.html

你可能感兴趣的文章
mongodb授权登录,经过自己修改后的授权登录方式
查看>>
Windows 原生运行 Linux 的技术细节
查看>>
《Abaqus GUI程序开发指南(Python语言)》——2.12 文件的操作
查看>>
《Adobe Premiere Pro CC经典教程》——第14 课 颜色校正和分级 14.1 开始
查看>>
Nologging到底何时才能生效?
查看>>
SoftEther ***
查看>>
我的友情链接
查看>>
activity以dialog形式显示
查看>>
用vcenter converter从vmwave workstation clone CentOS去ESXi 需更改网卡MAC
查看>>
防止刚进入activity的时候,edittext获取焦点,自动弹出软键盘
查看>>
【白话设计模式十一】生成器模式(Builder)
查看>>
exchange 2010 反垃圾邮件
查看>>
MySql-统计所有会员的最高前10次的积分和
查看>>
df du 磁盘分区 mkfs mount
查看>>
log4j配置详解与使用方法说明
查看>>
springmvc入门
查看>>
Android--------TabLayout实现新闻客户端顶部导航栏
查看>>
排毒,美容,什么时间最好。
查看>>
Exchange小技巧一则:部门、客服等专用邮箱
查看>>
Go 1.11 的go.mod
查看>>