Skip to content

Commit 749eb24

Browse files
authored
Create minimum-array-sum.py
1 parent 568dde9 commit 749eb24

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

Python/minimum-array-sum.py

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Time: O(n * op1 * op2)
2+
# Space: O(op1 * op2)
3+
4+
# dp
5+
class Solution(object):
6+
def minArraySum(self, nums, k, op1, op2):
7+
"""
8+
:type nums: List[int]
9+
:type k: int
10+
:type op1: int
11+
:type op2: int
12+
:rtype: int
13+
"""
14+
dp = [[sum(nums)]*(op2+1) for _ in xrange(op1+1)]
15+
for x in nums:
16+
for i in reversed(xrange(op1+1)):
17+
for j in reversed(xrange(op2+1)):
18+
if i-1 >= 0:
19+
dp[i][j] = min(dp[i][j], dp[i-1][j]-x+(x+1)//2)
20+
if j-1 >= 0:
21+
if x-k >= 0:
22+
dp[i][j] = min(dp[i][j], dp[i][j-1]-x+(x-k))
23+
if i-1 >= 0 and j-1 >= 0:
24+
if x-k >= 0:
25+
dp[i][j] = min(dp[i][j], dp[i-1][j-1]-x+((x-k)+1)//2)
26+
if (x+1)//2-k >= 0:
27+
dp[i][j] = min(dp[i][j], dp[i-1][j-1]-x+((x+1)//2-k))
28+
return dp[op1][op2]

0 commit comments

Comments
 (0)