LEETCODE-Majority Element
来源:互联网 发布:山西东华软件 编辑:程序博客网 时间:2024/06/13 00:27
Majority Element
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.
方法一:
#include<iostream>#include<vector>#include<algorithm>using namespace std;int majorityElement(vector<int>& nums) { int n; int q; int W; sort( nums.begin(), nums.end()); n = nums.size(); if( n == 1) { W = nums[0]; return W; } q = n / 2; for(int i = 0; i < q + 1; i++) { if(nums[i] == nums[i+q]) { W = nums[i]; return W; } }}int main (){ vector<int> nums; int n; int x; int W; cin >> n; for(int i = 0; i < n; i++) { cin >> x; nums.push_back(x); } W = majorityElement(nums); cout << W;}
先将vector容器之内的数值进行sort排序;
产生形如AABBBCCCCCC的形式;
然后通过for循环依次扫描nums[0]到nums[n/2]并逐个使其nums[i]与他们后边的nums[i+n/2]进行比较,相等即返回;
for(int i = 0; i < q + 1; i++) { if(nums[i] == nums[i+q]) { W = nums[i]; return W; } }
方法一其中使用了一个sort排序;导致了runtime增加
方法二:
majority element 的数量一定比其他 not majority element 的数量多;
#include<iostream>#include<vector>#include<algorithm>using namespace std;int majorityElement(vector<int>& nums) { int sentry; int time = 0; for(int i = 0; i < nums.size(); i++){ if( time == 0){ sentry = nums[i]; time ++; } else{ if( sentry == nums[i]) time++; else time--; } } return sentry;}int main (){ vector<int> nums; int n; int x; int W; cin >> n; for(int i = 0; i < n; i++) { cin >> x; nums.push_back(x); } W = majorityElement(nums); cout << W;}
0 0
- 【leetcode】Majority Element II,Majority element algorithm
- Leetcode: Majority Element &Majority Element II
- Leetcode Majority Element
- leetcode 169-Majority Element
- 【leetcode 哈希表】Majority Element
- LeetCode:Majority Element
- leetcode:Majority Element
- leetcode: Majority Element
- [LeetCode] Majority Element
- leetcode 153: Majority Element
- leetcode Majority Element
- LeetCode:Majority Element
- leetcode:Majority Element
- [LeetCode] Majority Element
- Leetcode-Majority Element
- [leetcode]Majority Element
- [LeetCode]Majority Element
- Leetcode: Majority Element
- TCP协议三次握手
- 浮躁的过去,开启的项目管理之路(一)
- SQL占用CPU100%
- KJframeforandroid框架之 KJBlog学习(三):
- NEtWorking_四种数据请求方式
- LEETCODE-Majority Element
- 数据结构-栈
- jstl标签库的运用
- 指针常量和常量指针
- Java中抽象类和接口的区别
- 中国十大热门网站榜中榜/Alexa综合排名TOP10(2015)
- +【CSS3】使用纯css代码实现图片轮播效果
- linux下的网络命令netstat
- BZOJ 1097 [POI2007]旅游景点atr dijikstra+状压DP