3396.使数组元素互不相同所需的最少操作次数

原题

一、循环

核心思想:利用【数组长度是否等于集合长度】来判断数组元素是否互不相同

class Solution:
    def minimumOperations(self, nums: List[int]) -> int:
        res = 0
        # 初始时先比较一次
        s = set(nums)
        if len(s) == len(nums):
            return res
        
        while len(nums) >= 3:
            s = set(nums)
            if len(s) != len(nums):
                res += 1
            nums = nums[3:]
        # 剩下元素少于3的情形
        # 1个直接得res
        # 2个还要判断是否相等来决定是否还需操作一次
        if len(nums) == 2 and nums[0] == nums[1]:
            res += 1
        
        return res

最后更新于