leetcode169 求众数

class Solution {
public:
	int majorityElement(vector<int>& nums) {
		int res = 0;
        int cnt = 0;
        if (nums.empty()) return 0;
        // 本质上就是相互抵消, 不过这代码写起来也是风骚
        // 先假设第一个就是res, 然后对其技术, 如果和后面的数不想等等,就相当于被抵消了, 所以就是cnt--;
        // 直到等于0的时候, 这个res就失去了价值, 所以一切从头开始(紧邻的那个数就相当于重新开始这一个过程)
        for (int i = 0; i < nums.size(); i++) {
            if (cnt == 0) {
                res = nums[i];
                cnt++;
            }
            else (nums[i] == res) ? cnt++ : cnt--;
        }
        return res;
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_36149892/article/details/80241298
今日推荐