leetcode_169_Majority Element
来源:互联网 发布:java版波斯王子2下载 编辑:程序博客网 时间:2024/05/22 05:06
版权所有,欢迎转载,转载请注明出处,谢谢
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.
You may assume that the array is non-empty and the majority element always exist in the array.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
//vs2012测试代码#include<iostream>#include<vector>//方法二:如果不随机会超时;同样思路,随机挑选一个元素,检查是否是多数元素。时间复杂度:Average:O(n)。期望查找次数 <2using namespace std;#define n 5class Solution {public: int majorityElement(vector<int> &num) {while(1){int randnum;int count=0;//1个元素时,num.size()-1为0。而rand()%0不合法,应该规避。 if(num.size()==1) return num[0];randnum = rand() % (num.size()-1);for(int i=0; i<num.size(); i++){if( num[i] == num[randnum])count++;if(count > num.size()/2){cout<<num[i];return num[i];}}} }};int main(){int a;vector<int> num;for(int i=0; i<n; i++){cin>>a;num.push_back(a);}Solution lin;lin.majorityElement(num);}
//方法一:每找出两个不同的element,就成对删除即count--,最终剩下的一定就是所求的。时间复杂度:O(n)class Solution {public: int majorityElement(vector<int> &num) {int element; int length=num.size();int count=0;for(int i=0; i<length; i++){if(count == 0){element=num[i];count=1;}else{if(num[i] == element)count++;elsecount--;}}cout<<element;return element; }};
//方法二:随机挑选一个元素,检查是否是多数元素。时间复杂度:Average:O(n)。期望查找次数 <2class Solution {public: int majorityElement(vector<int> &num) { while(1){int randnum;int count=0;//1个元素时,num.size()-1为0。而rand()%0不合法,应该规避。 if(num.size()==1) return num[0];randnum = rand() % (num.size()-1);for(int i=0; i<num.size(); i++){if( num[i] == num[randnum])count++;if(count > num.size()/2){cout<<num[i];return num[i];}}} }};
//方法:不随机,超时class Solution {public: int majorityElement(vector<int> &num) { int length=num.size();vector<int> count;count.resize(length);count.assign(length,0);for(int i=0; i<length; i++){for(int j=0; j<length; j++){if(num[j] == num[i])count[i]++;}if(count[i] > length/2){cout<<num[i];return num[i];}} }};
1 0
- Leetcode_169_Majority Element
- leetcode_169_Majority Element
- leetcode_169_Majority Element(C++)(easy)
- Element
- Element
- element
- element jquery
- element.childNodes
- dom element
- expat:element
- Element Object
- Element 对象
- prototype Element
- Remove Element
- Remove Element
- Remove Element
- Remove Element
- Remove Element
- 自定义控件
- JAVA 建造者模式
- 代码大全第二版读书笔记 第二部分-创建高质量的代码 八、防御式编程
- Unity3D_IOS研究院之Unity3D调用IOS的方法(十)
- Uva 6284 Hyperdrome
- leetcode_169_Majority Element
- Best Time to Buy and Sell Stock III
- 【ACM打卡】2176
- SDL2.0超简单入门 100行代码实现播放wav声音文件
- Android PackageManagerService详细分析
- 为什么Android手机总是越用越慢?
- iOS开发技术的核心摘要
- 关于重装系统时读取不到硬盘和设置主板AHCI蓝屏问题
- HTTPS过程详解