Majority Element (easy)
来源:互联网 发布:淘宝图片空间满了 编辑:程序博客网 时间:2024/05/19 11:46
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.
class Solution {
public:int majorityElement(vector<int> &num) {
int majority = 0;
int times = 0;
for(int i=0;i<num.size();i++)
{
if (times==0)
{
majority = num[i];
times = 1;
}
else
{
if (majority==num[i])
{
times += 1;
}
else
{
times -= 1;
}
}
}
return majority;
}
};
这个问题之所以这么去做,原因是题目中给出了一个信息,说最多数的数目大于n/2下取整。怎么利用这个信息呢,对于任何一道题,信息非常关键。如果单单说找出个数最多的数,这道题就不能这么做了。既然有这个条件,那就说明,该数组中任何两个不同的数配对删除后最后剩下的肯定是个数最多的数。配对删除并不是指真的删除,只是让形似删除。找到一个跟现在指向的数majority相同的数,就让次数加1,找到一个和现在数不同的数时就次数减1,得到的times就是配对删除后majority的次数。一堆空话,我们来举个栗子:[a,b,c,d,a,a,b,a,d],先找到a,majority=a,次数times=1;然后b和a不一样,则times-1=0;重新majority=c,times=1;。。。直到找到a后,下一个仍是a,则times=2,依次类推。总之,就是先指向一个数,用times的减1来表征配对的删除,times记录删除不同配对后,最多数字出现的次数。
那对于n/k下取整的题来说,就找k个不同的配对删除。
0 0
- Majority Element (easy)
- 169. Majority Element (Easy)
- 169. Majority Element Easy
- [Leetcode 169, Easy] Majority Element
- <LeetCode><Easy> 169 Majority Element
- 169. Majority Element [easy] (Python)
- 【LeetCode】169.Majority Element (Easy)
- Leetcode 169. Majority Element[easy]
- Easy 169题 Majority Element
- LeetCode 169. Majority Element (Easy)
- LeetCode 169. Majority Element (Easy)
- 【Leetcode-Easy-169】 Majority Element
- leetcode 169 Majority Element(难易度:Easy)
- Easy-题目11:169. Majority Element
- Leetcode 169. Majority Element (Easy) (cpp)
- 169. Majority Element 难度:Easy 类别:分治
- Majority Element——Difficulty:Easy
- LeetCode解题报告 169. Majority Element [easy]
- XML解析PULL
- 22 桥接模式
- Eloquent ORM
- 十道海量数据处理面试题与十个方法大总结
- Javac编译时报“非法的前向引用”,以及Eclipse自带的Java编译器的缺陷
- Majority Element (easy)
- ubuntu下快速使用protobuf
- 关于Intent的其它东西
- 第2周项目长方柱类
- Android开发_Handler
- const的用法,特别是用在函数后面
- lib 合并 打包 遇到 .o 重名的解决办法
- zoj_2876 Phone List
- 轻松搞定面试中的链表的题