class Solution:
def majorityElement(self, nums: List[int]) -> int:
n = len(nums)
for num in nums:
count = sum(1 for i in nums if i == num)
if count > n // 2:
return numclass Solution:
def majorityElement(self, nums: List[int]) -> int:
count = defaultdict(int)
res = maxCount = 0
for num in nums:
count[num] += 1
if maxCount < count[num]:
res = num
maxCount = count[num]
return resclass Solution:
def majorityElement(self, nums: List[int]) -> int:
nums.sort()
return nums[len(nums) // 2]class Solution:
def majorityElement(self, nums: List[int]) -> int:
n = len(nums)
bit = [0] * 32
for num in nums:
for i in range(32):
bit[i] += ((num >> i) & 1)
res = 0
for i in range(32):
if bit[i] > (n // 2):
if i == 31:
res -= (1 << i)
else:
res |= (1 << i)
return resrepresents the number of bits as the given numbers are integers.
class Solution:
def majorityElement(self, nums):
res = count = 0
for num in nums:
if count == 0:
res = num
count += (1 if num == res else -1)
return resclass Solution:
def majorityElement(self, nums):
n = len(nums)
while True:
candidate = random.choice(nums)
if nums.count(candidate) > n // 2:
return candidateThe probability of randomly choosing the majority element is greater than , so the expected number of iterations in the outer while loop is constant.