查找出现次数出现了一半的数
来源:互联网 发布:青岛知行国际怎么样 编辑:程序博客网 时间:2024/04/26 18:08
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
题目是这样子的,= =,当然,能够想到的办法可以用hash表来统计下每个元素出现的个数,然后判断是不是有超过了总数一半的数字就可以得出答案了。
然而。。。
作为一个比较折腾的博主,非要用找中位数的方法来求得答案。
思路是按照快速排序的函数,找到”中位数“,然后遍历数组,判断这个数的出现次数是不是超过了一半,是不是很作死啊 = =
code 如下:
class Solution {public:int Partion(vector<int >& vec , int begin , int end ){ if(vec.size() == 0 || begin < 0 || end < 0 ){ return -1; } int tmp = vec[ begin ]; while(begin < end && begin >=0){ while ( begin < end && vec[end ] >= tmp ){ //记得是大于等于符号哦 end--; } if(begin < end ) { vec[begin ] = vec[end]; begin++;//要记得加上额 } while(begin < end && vec[begin ] < tmp){ begin ++; } if(begin < end ) { vec[end ] = vec[begin ]; end--;//要记得减去 } } vec[begin ] = tmp; return begin ; } int MoreThanHalfNum_Solution(vector<int> numbers) { if(numbers.size() == 0) return 0; size_t mid = numbers.size()/2; int begin = 0; int end = numbers.size() - 1; size_t index = Partion(numbers, begin , end ); while(index != mid){ if( index > mid ){ index = Partion( numbers , begin , index -1); } else { index = Partion( numbers , index + 1 , end ); } } int mid_num = numbers[index]; size_t times = 0; for(size_t index =0 ; index <numbers.size() ; index++ ){ if(numbers[index] == mid_num){ times++; } } if(times*2 > numbers.size()) return mid_num; else return 0; }};
0 0
- 查找出现次数出现了一半的数
- 查找出现次数超过一半的数
- 查找出现次数超过一半的数
- 查找出现次数超过一半的数
- 求出现次数超过一半的数
- 出现次数超过一半的数
- 出现次数超过一半的数
- 出现次数超过一半的数
- 数组出现次数超过一半的数
- 28:出现次数超过一半的数
- 出现次数超过一半的数
- 找出一组数出现次数超过一半的数
- 遍历数组查找其中数字出现次数大于一半的
- 查找数组中出现次数超过一半的元素
- 查找数组中出现次数超过一半的数字
- 算法-查找出现次数超过一半的数字--9-1
- 找出数组中出现次数超过一半的数
- 算法--找出数组中出现次数超过一半的数
- leetcode——31——Next Permutation
- PHP isset()与empty()的使用区别
- C语言函数 求圆的面积的函数
- 常用正则表达式大全 (转)
- Fragment进阶2——使用FragmentTabhost代替Tabhost
- 查找出现次数出现了一半的数
- 在VirtualBox的虚拟Redhat5.4与物理机共享文件夹的方法
- Android 学习记录-调试输出
- jquery.validate.js表单验证
- Eclipse在loading workbench时候闪退的解决方法
- 不一样的事件总线 - NextEvents
- JQuery EasyUI Datagrid 的 tooltip 使用
- Apache Arrow源码分析(三)——内存池与缓冲区
- Html 实现浮动窗口