首页 > 代码库 > 编程之美--2.3
编程之美--2.3
题目描述:寻找发帖水王,转换一下就是:给定一个数组,找出出现次数大于n/2的元素
思路:
(1)排序,直接输出中间元素
(2)O(N),每次删除两个不同元素,注意代码实现
1 #include <iostream> 2 #include <queue> 3 #include <climits> 4 #include <algorithm> 5 #include <memory.h> 6 #include <stdio.h> 7 using namespace std; 8 9 int fun(vector<int> a)10 {11 if(a.size() == 0)12 return 0;13 int num = 0;14 int cur = a[0];15 for(int i = 1 ; i < a.size() ; ++i)16 {17 if(num == 0)18 {19 cur = a[i];20 num = 1;21 }22 else23 {24 if(cur == a[i])25 {26 num++;27 }28 else29 {30 num--;31 }32 }33 }34 return cur;35 }36 37 int main()38 {39 vector<int> a;40 a.push_back(1);41 a.push_back(2);42 a.push_back(3);43 a.push_back(2);44 a.push_back(2);45 cout<<fun(a)<<endl;46 return 0;47 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。