Leetcode-- Majority Elemeny
来源:互联网 发布:算法之美 京东 编辑:程序博客网 时间:2024/06/07 16:19
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.
解题思路:刚开始的想法是直接对已有数组进行排序,但是这样做会改变原有数组,而且时间复杂度为O(n*logn)。具体代码如下:
class Solution {public: int majorityElement(vector<int> &num) { sort(num.begin(),num.end()); return num[num.size()/2]; }};
还有一种做法就是遍历整个数组,设置一个计数器,令第一个元素为待选元素,当下一元素和待选元素相同时,就++,不同时就--。若计数器为零,则更换待选元素。具体代码如下:class Solution {public: int majorityElement(vector<int> &num) { int times = 0; int element = 0; for(int i=0;i<num.size();++i) { if(times == 0) { element = num[i]; times = 1; } else { if(element == num[i]) ++times; else --times; } } return element; }};
⌊ n/2 ⌋
times.You may assume that the array is non-empty and the majority element always exist in the array.
class Solution {public: int majorityElement(vector<int> &num) { sort(num.begin(),num.end()); return num[num.size()/2]; }};还有一种做法就是遍历整个数组,设置一个计数器,令第一个元素为待选元素,当下一元素和待选元素相同时,就++,不同时就--。若计数器为零,则更换待选元素。具体代码如下:
class Solution {public: int majorityElement(vector<int> &num) { int times = 0; int element = 0; for(int i=0;i<num.size();++i) { if(times == 0) { element = num[i]; times = 1; } else { if(element == num[i]) ++times; else --times; } } return element; }};
0 0
- Leetcode-- Majority Elemeny
- LeetCode(169) Majority Number
- 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 Numbers
- leetcode:Majority Element
- [LeetCode] Majority Element
- Leetcode-Majority Element
- [leetcode]Majority Element
- [LeetCode]Majority Element
- 最长回文子串
- 【win7系统常用网络命令】
- 5.7 区域提取
- AndroidManifest解析
- 【如何装出64位win7系统】
- Leetcode-- Majority Elemeny
- Linux显示指定区块大小为1048576字节
- 第二周工作周报-刘婉
- spring之Aop面向切面
- C 矩阵变化
- 限制玻尔兹曼机(Restricted Boltzmann Machine)学习笔记(二)
- 操作系统概论——整体把握
- 【电脑右键打开方式出现没有程序与之相关联】
- MFC笔记