169. Majority Element
来源:互联网 发布:cf咪咕刷枪软件 编辑:程序博客网 时间:2024/06/06 07:49
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.
分析
分而治之。若nums只含一个数,则该数就是主元。若多于一个数,将nums分为两部分,若两部分都没有主元,则nums没有主元,若左右部分的主元相等,那么该数就是主元。若左右两边的主元不相等,扫描nums,统计该数的次数,若大于size/2,该数就是主元。
代码
class Solution {public: int majorityElement(vector<int>& nums) { int size=nums.size(); if (size==1) return nums[0]; vector<int> left=vector<int>(nums.begin(),nums.begin()+size/2); vector<int> right=vector<int>(nums.begin()+size/2,nums.end()); int left_major=majorityElement(left); int right_major=majorityElement(right); int tem; if (left_major==-1&&right_major==-1) { return -1;} else if (left_major==right_major) {return left_major;} else {if (left_major!=-1) {tem=left_major;int count = 0;for (int i = 0; i < size; ++i) {if (nums[i]==tem)count++;}if (count>size/2)return tem;}if (right_major!=-1) {tem=right_major;int count = 0;for (int i = 0; i < size; ++i) {if (nums[i]==tem)count++;}if (count>size/2)return tem;}return -1;} }};
阅读全文
0 0
- 169.Majority Element && 229. Majority Element II
- [LeetCode]169.Majority Element
- LeetCode 169.Majority Element
- 【LeetCode】169.Majority Element
- LeetCode 169. Majority Element
- LeetCode 169. Majority Element
- 169.Majority Element
- [leetcode] 169.Majority Element
- 169. Majority Element
- Leetcode 169. Majority Element
- 【LeetCode】169. Majority Element
- [LeetCode]169. Majority Element
- 169. Majority Element LeetCode
- 169. Majority Element
- 169. Majority Element
- LeetCode 169. Majority Element
- LeetCode 169. Majority Element
- Leetcode 169. Majority Element
- Java之二元运算
- 【每日一题(14)】函数F(x) HRBUST
- linux-命令sed 使用技巧
- Django-模型
- 安卓简易理财
- 169. Majority Element
- html 标签a 如何跳出iframe
- 2017.12.05 Linux文件编程
- 12.Linux文件编程
- python基础-信号量Semaphore(进程_线程)、事件Event(进程_线程)
- 【hihoCoder 1650】扁平化管理 【java 二分】
- 深度学习和普通机器学习之间有何区别?
- P1717钓鱼
- Bugly iOS 符号表手动配置详细教程