Majority Element:主元素
2015-08-09 21:04
211 查看
Given an array of size n, find the majority element. The majority element is the element that appears more than
You may assume that the array is non-empty and the majority element always exist in the array.
求主元素:包含n个元素的数组中,如果一个元素的出现次数大于n/2(向下取整)次,则该元素为主元素。
根据定义,则每两个数中必有一个是主元素,设定一个变量cnt=0,当两个数相同时,cnt++,不同时,cnt--。用变量
majority来记录主元素,每当cnt=0时,把当前元素赋给majority,成为候选的主元素,这样一来,最后的majority的值一定就是主元素。
代码如下:
⌊ n/2 ⌋times.
You may assume that the array is non-empty and the majority element always exist in the array.
求主元素:包含n个元素的数组中,如果一个元素的出现次数大于n/2(向下取整)次,则该元素为主元素。
根据定义,则每两个数中必有一个是主元素,设定一个变量cnt=0,当两个数相同时,cnt++,不同时,cnt--。用变量
majority来记录主元素,每当cnt=0时,把当前元素赋给majority,成为候选的主元素,这样一来,最后的majority的值一定就是主元素。
代码如下:
class Solution { public: int majorityElement(vector<int> &num) { int majority; int cnt = 0; for(int i=0; i<num.size(); i++){ if ( cnt ==0 ){ majority = num[i]; cnt++; }else{ majority == num[i] ? cnt++ : cnt --; if (cnt > num.size()/2) return majority; } } return majority; } };
相关文章推荐
- 欧拉工程第57题:Square root convergents
- 读书笔记之c和指针(10)
- 集训感悟
- 排序算法之快速排序
- HDOJ1005
- Linux下线程相关知识总结
- 但是,在通过移动数组的上升周期中找到指定元素
- 谈谈SQL 语句的优化技术
- 欧拉工程第56题:Powerful digit sum
- oracle数据库之sql语句使用
- 在Notepad++中搭配Python开发环境(修改版)
- Android中使用SQLiteOpenHelper对SQLite数据库进行增删改查
- 20150804客户sqlserver库查询sql执行慢的问题分析
- 106. Construct Binary Tree from Inorder and Postorder Traversal
- 数据结构复习--java实现单链表基本操作
- Python 3下Matplotlib画图中文显示乱码的解决方法
- java垃圾回收
- 105. Construct Binary Tree from Preorder and Inorder Traversal
- java中String的常用方法
- 华为训练题目:初级——字符串最后一个单词的长度(简单题)