Skip to content

Commit ef0d7d2

Browse files
authored
Create minimum-total-space-wasted-with-k-resizing-operations.py
1 parent a4f6249 commit ef0d7d2

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Time: O(k * n^2)
2+
# Space: O(k * n)
3+
4+
class Solution(object):
5+
def minSpaceWastedKResizing(self, nums, k):
6+
"""
7+
:type nums: List[int]
8+
:type k: int
9+
:rtype: int
10+
"""
11+
INF = float("inf")
12+
k += 1
13+
dp = [[INF]*(k+1) for _ in xrange(len(nums)+1)]
14+
dp[0][0] = 0
15+
for i in xrange(1, len(nums)+1):
16+
total = max_num = 0
17+
for j in reversed(xrange(1, i+1)):
18+
total += nums[j-1]
19+
max_num = max(max_num, nums[j-1])
20+
for m in xrange(1, k+1):
21+
if dp[j-1][m-1] != INF:
22+
dp[i][m] = min(dp[i][m], dp[j-1][m-1] + (max_num*(i-j+1)-total))
23+
return dp[-1][-1]

0 commit comments

Comments
 (0)