파이썬 알고리즘 인터뷰 83번(리트코트 169번) Majority Element
https://leetcode.com/problems/majority-element/
class Solution:
def majorityElement(self, nums: List[int]) -> int:
return sorted(nums)[len(nums) // 2]
class Solution:
def majorityElement(self, nums: List[int]) -> int:
count = collections.defaultdict(int)
for num in nums:
count[num] += 1
if count[num] > len(nums) // 2:
return num
class Solution:
def majorityElement(self, nums: List[int]) -> int:
if not nums:
return None
if len(nums) == 1:
return nums[0]
half = len(nums) // 2
a = self.majorityElement(nums[:half])
b = self.majorityElement(nums[half:])
return [a, b][nums.count(b) > half]
class Solution:
def majorityElement(self, nums: List[int]) -> int:
count = 0
candidate = 0
for num in nums:
if count == 0:
candidate = num
if num == candidate:
count += 1
else:
count -= 1
return candidate