Leetcode 169. 多数元素

文章目录

  • 题目
  • 代码(首刷自解,空间复杂度O(n))
  • 代码(首刷看解析,空间复杂度O(1))

题目

Leetcode 169. 多数元素_第1张图片
Leetcode 169. 多数元素

代码(首刷自解,空间复杂度O(n))

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int n = nums.size()/2;
        unordered_map<int, int> map;
        for(int& num : nums) {
            if(map.count(num)) {
                map[num]++;
                if(map[num] > n)
                    return num;
            } else {
                map[num] = 1;
            }
        }
        return nums[0];
    }
};

代码(首刷看解析,空间复杂度O(1))

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int target = 0;
        int count = 0;
        for(int& num : nums) {
            if(!count) {
                target = num;
                count = 1;
            } else if(target == num) {
                count++;
            } else {
                count--;
            }
        }
        return target;
    }
};

你可能感兴趣的:(Leetcode专栏,leetcode,算法,职场和发展)