169. Majority Element
来源:互联网 发布:凤凰直播软件下载 编辑:程序博客网 时间:2024/05/19 03:17
169. 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.
解法1 :分治法
思路
求数组的众数,可以转而求前半段数组的众数和后半段的众数,然后比较两个众数的频率,较大者则为该数组的众数。
代码
class Solution {public: int majority(vector<int>& nums,int begin,int end){ if(begin==end) return nums[begin]; int mid=(end+begin)/2; int l=majority(nums,begin,mid); int r=majority(nums,mid+1,end); if(l==r) return l; int lcnt=0,rcnt=0; for(int i=begin;i<=end;i++){ if(l==nums[i]) lcnt++; if(r==nums[i]) rcnt++; } if(lcnt>rcnt) return l; return r; } int majorityElement(vector<int>& nums) { return majority(nums,0,nums.size()-1); }};
原数组分成左右两支,且若两支的众数不等时需要遍历数组,遍历数组时需要O(n)时间。故时间复杂度为:T(n)=2T(n/2)+O(n)=O(nlogn)
运行时间:16ms
解法2:排序求中值
思路
因为众数的个数至少为数组元素的一半,所以将数组排序后,中间元素肯定为众数。
代码
class Solution {public: int majorityElement(vector<int>& nums) { sort(nums.begin(),nums.end()); int len=nums.size(); return nums[len/2]; }};
时间复杂度取决于sort()函数,复杂度为O(nlogn)。
运行时间:36ms
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
- IOS导航栏颜色渐变与常用属性
- 如何理解hadoop的安装方式
- Web服务器工作原理概述
- Python CGDAL类——支持栅格数据的栅格计算/线性增强/滤波增强
- 异常:Null value was assigned to a property of primitive type setter of···
- 169. Majority Element
- 中兴2017面试总结
- PAT甲 1007. Maximum Subsequence Sum (25)
- 我的小一步,争取是人类的一大步
- jQuery基础
- sql 多表连接与子查询
- Docker基础教程——数据管理
- QT下udpsocket一段时间接收不到数据的问题
- 5年时间,研究177位百万富翁,发现这13条规律