出现次数为某个特定值的问题归类
来源:互联网 发布:淘宝二级域名有什么用 编辑:程序博客网 时间:2024/05/17 23:37
1.入栈出栈法,O(n) (推荐)
将第一个数入栈,遍历后面n-1个数,每个数与栈顶数比较,如果相同则进栈,不同则弹出栈顶元素,最后栈内剩下的一定是次数大于n/2的数。比如1,2,1,3,1,首先1入栈,然后2与栈顶1比较,不相同,于是1出栈,相当于主元素与非主元素相拼,不相同则同归于尽,都丢弃,相同则入栈储存起来,与后面的异己相拼。
2.芯片测试法,O(n)
每次两两比较,如果相同则留下一个,不同则都丢弃,轮空元素特殊处理,每次减半,共进行logn轮比较,T(n) = T(n/2) + n/2,根据主定理得出总的时间复杂度为O(n)。
3.排序法,O(nlogn)
排序,然后取第n/2个数就是主元素。
4.中位数法,
主元素一定是中位数,类似快排思想找出中位数。
二、找出现次数只有1次的数(其他数都出现两次)。 (找出故障机器问题)
1.异或操作法 O(n)(推荐)
a1⊕a2⊕a3....⊕an,出现两次的元素都异或没了,最后只剩下出现一次的。
2.普通记录个数法 O(n)
遍历数组,在hash表中记录次数。
- 出现次数为某个特定值的问题归类
- 取得某个字符串中出现特定字符串的次数
- 如何统计出某个字段里的一个特定字符出现的次数?
- 查找字符串中某个特定的单词出现的次数(练习)
- 某个数字出现的次数
- 统计特定字符串出现的次数
- ORACLE计算某个列中出现次数最多的值
- MySQL查询某个字段属性值重复出现的次数
- vi统计某个匹配出现的次数
- Linux 统计某个字符串出现的次数
- Linux 统计某个字符串出现的次数
- Linux 统计某个字符串出现的次数
- 统计某个单词出现的次数
- Linux 统计某个字符串出现的次数
- 统计某个字符串出现的次数
- 记录某个数字出现的次数
- 关于Split()以某个字符串分割,解决特定字符串连续出现的问题
- 返回某个字符串中某个字符串中出现的次数
- struts2中获取respones 等jsp对象的方式
- VC6.0中backspace键和tab键失灵
- node.js 入门
- .net jMail邮件发送(含抄送、密送、多发、日志记录)
- 持续集成平台构建
- 出现次数为某个特定值的问题归类
- opencv学习-imgprocess-判断点是否在轮廓内pointPolygonTest
- 一句话
- 使用xrdp实现windows 远程桌面 ubuntu linux
- MyEclipse取消验证Js的两种途径.
- IOS学习笔记-概述
- java学习之路-------try....catch....让你想不到的结果
- "蓝屏"和"绿屏"CG技术
- 简单实用的网游服务器架构