2023年10月5日 星期四

10/4 每日一題(找出freq超過n//3的元素)

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]:
        times=len(nums)//3
        nums_freq=Counter(nums)
        res=[]

        for ele,freq in nums_freq.items():
            if freq > times:
                res.append(ele)
        return res

----------------------
class Solution:
    def majorityElement(self, nums: List[int]) -> List[int]:
        n = list(set(nums))
        l = len(nums)//3
        res = []

        for i in n:
            if nums.count(i) > l:
                res.append(i)
        
        return res

       

       

標籤:

0 個意見:

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁