169. Majority Element(位运算)
# Easy

class Solution:
def majorityElement(self, nums: List[int]) -> int:
res = 0
for i in range(32):
ones = 0
zeros = 0
x = 1 << i
for num in nums:
if num & x != 0:
ones += 1
else:
zeros += 1
if ones > len(nums)//2 or zeros > len(nums)//2:
break
if ones > len(nums)//2:
res = res | x
return res
# incorrect when test [-2^31], output is [2^31]
# but if coding in C++, then it's correct, why??????
Last updated
Was this helpful?