摩尔投票法
关于leetcode:主要元素使用摩尔投票法求解:
class Solution { public: int majorityElement(vector<int>& nums) { if (nums.size() == 0) return -1; if (nums.size() == 1) return nums[0]; int major, count = 0; for (auto num : nums) { if (count == 0) { major = num; count = 1; } else { if (num == major) count++; else { count--; } } } int count1 = 0; for (auto num : nums) { if (num == major) { count1++; } } return count1 > nums.size() / 2 ? major : -1; } };

浙公网安备 33010602011771号