Leetcode # 2869. Minimum Operations to Collect Elements
Problem
https://leetcode.com/contest/biweekly-contest-114/problems/minimum-operations-to-collect-elements/
- The input is generated such that you can collect elements 1, 2, …, k.
⇒ find len(nums) – min(indices(num)[-1] for num in range(1, k + 1))
Solution
First Ver.
Time Complexity: O(2 * n) ≡ O(n)
Space Complexity: O(n)
(The input and output generally do not count towards the space complexity.)
class Solution: def minOperations(self, nums: List[int], k: int) -> int: final_index = {} for i, num in enumerate(nums): final_index[num] = i return len(nums) - min(final_index[num] for num in range(1, k + 1))
Refined Ver.
Time Complexity: O(n)
Space Complexity: O(k)
(The input and output generally do not count towards the space complexity.)
class Solution: def minOperations(self, nums: List[int], k: int) -> int: final_index = {} min_final_index = len(nums) for i, num in enumerate(nums[::-1]): if num <= k and num not in final_index: final_index[num] = len(nums) - i - 1 if final_index[num] < min_final_index: min_final_index = final_index[num] return len(nums) - min_final_index
Last Updated on 2023/10/01 by A1go