leetcode_c++:Majority Element(169)
2016-06-15 00:38
495 查看
题目
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)Moore voting algorithm–每找出两个不同的element,就成对删除即count–,最终剩下的一定就是所求的。时间复杂度:O(n)
代码
class Solution { public: int majorityElement(vector<int> &num) { int elem = 0; int count = 0; for(int i = 0; i < num.size(); i++) { if(count == 0) { elem = num[i]; count = 1; } else { if(elem == num[i]) count++; else count--; } } return elem; } };
相关文章推荐
- C/C++基本数据类型所占字节数
- C语言课程设计第二次作业
- 第一次C语言课程设计作业
- Eclipse下编写C++程序——CDT环境搭建
- C++中的哈希容器unordered_map
- C++中的哈希容器unordered_map
- C++基础知识学习:数组
- C++通过内嵌类无法推断外部类的模板实参。
- [leetcode[ 【字符串】 44. Wildcard Matching
- leetcode_c++:Find Peak Element(162)
- C++ 引用本质的详解
- Qt安卓JNI交互之(1) C++注册函数给JAVA调用
- c语言学习笔记27之指针3
- C++文件流
- effective c++学习笔记0
- 240. Search a 2D Matrix II
- c++:chang fang zhu de tiji yu mianji
- ios学习路线—C语言(枚举)
- 29. Divide Two Integers
- 头文件里面实现一个函数,在两个cpp中包含,则重复定义,如果加上inline则不会报错