알고리즘 문제/Leetcode

229. Majority Element II

BEstyle 2023. 4. 4. 20:08

Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times.

 

Example 1:

Input: nums = [3,2,3]
Output: [3]

Example 2:

Input: nums = [1]
Output: [1]

Example 3:

Input: nums = [1,2]
Output: [1,2]

 

Constraints:

  • 1 <= nums.length <= 5 * 104
  • -109 <= nums[i] <= 109

 

Follow up: Could you solve the problem in linear time and in O(1) space?

 


class Solution:
    def majorityElement(self, nums: List[int]) -> List[int]:
        ans=[]
        times=int(len(nums)/3)
        c=Counter(nums)
        for k,v in c.items():
            if v>times:
                ans.append(k)
        return ans