Problem of The Day: Minimum Operations to Make Array Values Equal to K
Problem Statement
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()