December 16, 2024
이 문제에서는 다음 연산을 k번 수행한다. 이때, 모든 연산을 수행한 후 배열의 상태를 반환하라.
연산:
class Solution:
def getFinalState(self, nums: List[int], k: int, multiplier: int) -> List[int]:
for i in range(k):
minval = min(nums)
for j in range(len(nums)):
if nums[j] == minval:
nums[j] = nums[j] * multiplier
break
return nums
class Solution:
def getFinalState(self, nums: List[int], k: int, multiplier: int) -> List[int]:
heap = [(num, i) for i,num in enumerate(nums)]
heapq.heapify(heap)
for i in range(k):
minval, idx = heapq.heappop(heap)
new_val = minval * multiplier
nums[idx] = new_val
heapq.heappush(heap, (new_val, idx))
return nums
확실히 빨라진 것을 확인할 수 있다.
Constraints:
1 <= nums.length <= 100
1 <= nums[i] <= 100
1 <= k <= 10
1 <= multiplier <= 5