less than 1 minute read

Problem Statement

problem

My Solution

class Solution:
    def minOperations(self, nums: List[int], k: int) -> int:
        nums.sort()
        res = 0
        prev = -1
        for num in nums:
            if num < k:
                return -1
            elif num > k and num != prev:
                res += 1
                prev = num
        return res

=> O(nlogn) due to sort()

Editorial

Approach 1: Hash map

class Solution:
    def minOperations(self, nums: List[int], k: int) -> int:
        st = set()
        for x in nums:
            if x < k:
                return -1
            elif x > k:
                st.add(x)
        return len(st)

=> O(n) run time but O(n) space since we are using set()