ๅคšๆ•ฐๅ…ƒ็ด  ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ๐ŸŒŸ็ฎ€ๅ•

่ฏพๅŽไฝœไธš

้—ฎ้ข˜ๆ่ฟฐ

ๅŽŸๆ–‡้“พๆŽฅ๏ผš169. ๅคšๆ•ฐๅ…ƒ็ด 

็ป™ๅฎšไธ€ไธชๅคงๅฐไธบ n ็š„ๆ•ฐ็ป„ nums ๏ผŒ่ฟ”ๅ›žๅ…ถไธญ็š„ๅคšๆ•ฐๅ…ƒ็ด ใ€‚ๅคšๆ•ฐๅ…ƒ็ด ๆ˜ฏๆŒ‡ๅœจๆ•ฐ็ป„ไธญๅ‡บ็Žฐๆฌกๆ•ฐ ๅคงไบŽ โŒŠ n/2 โŒ‹ ็š„ๅ…ƒ็ด ใ€‚

ไฝ ๅฏไปฅๅ‡่ฎพๆ•ฐ็ป„ๆ˜ฏ้ž็ฉบ็š„๏ผŒๅนถไธ”็ป™ๅฎš็š„ๆ•ฐ็ป„ๆ€ปๆ˜ฏๅญ˜ๅœจๅคšๆ•ฐๅ…ƒ็ด ใ€‚

็คบไพ‹ 1๏ผš

่พ“ๅ…ฅ๏ผšnums = [3,2,3]
่พ“ๅ‡บ๏ผš3
็คบไพ‹ 2๏ผš

่พ“ๅ…ฅ๏ผšnums = [2,2,1,1,1,2,2]
่พ“ๅ‡บ๏ผš2

ๆ็คบ๏ผš

  • n == nums.length
  • 1 <= n <= 5 * 10็š„4ๆฌกๆ–น
  • -10็š„9ๆฌกๆ–น <= nums[i] <= 10็š„9ๆฌกๆ–น

ไปฃ็ ๅฎž็Žฐ

Java

class Solution {
    public int majorityElement(int[] nums) {
        int sum = 1;
        int x = nums[0];

        for(int i = 1; i < nums.length; i++){
            if(sum == 0){
                sum = 1;
                x = nums[i];
            }else{
                if(x == nums[i]){
                    sum++;
                }else{
                    sum--;
                }
            }
        }
        return x;
    }
}

Python

class Solution(object):
    def majorityElement(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        sum = 1
        x = nums[0]

        for i in range(1, len(nums)):
            if sum == 0:
                sum = 1
                x = nums[i]
            else:
                if x == nums[i]:
                    sum += 1
                else:
                    sum -= 1

        return x

C++

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int sum = 1;
        int x = nums[0];

        for (int i = 1; i < nums.size(); i++) {
            if (sum == 0) {
                sum = 1;
                x = nums[i];
            } else {
                if (x == nums[i]) {
                    sum++;
                } else {
                    sum--;
                }
            }
        }

        return x;
    }
};

Go

func majorityElement(nums []int) int {
    sum := 1
    x := nums[0]

    for i := 1; i < len(nums); i++ {
        if sum == 0 {
            sum = 1
            x = nums[i]
        } else {
            if x == nums[i] {
                sum++
            } else {
                sum--
            }
        }
    }

    return x
}

ๅ‘่กจ่ฏ„่ฎบ

ๅŽๆ‰่ƒฝ่ฏ„่ฎบ