知识点
摩尔投票法
思路
题目要求求众数,我们可以排序后找到中间元素,这样时间复杂度为。
用摩尔投票法可以将复杂度降到,主要思想就是像投票一样,优势牛种会抵消其他的牛种的总和。
AC code(C++)
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型
*/
int majority_cow(vector<int>& nums) {
// 摩尔投票法
int m = 0, cnt = 0;
for (auto x : nums) {
if (cnt == 0) {
m = x;
}
if (m == x) cnt += 1;
else cnt -= 1;
}
return m;
}
};

京公网安备 11010502036488号