Minimum striped array

Minimum division array 410

 

 

. 1  class Solution (Object):
 2      DEF splitArray (Self, the nums, m):
 . 3          "" " 
. 4          : type the nums: List [int]
 . 5          : type m: int
 . 6          : rtype: int
 . 7          " "" 
. 8  
. 9          n-= len (the nums)
 10  
. 11          # preSum [I] represents a sum [0] ... sum [i -1] and the prefix closed interval 
12 is          preSum = [0 for J in range (n-+. 1 )]
 13 is          # DP [I ] [j] j is the number of sub-arrays into individual i is set maximum and minimum value 
14          DP = [[a float ( ' INF ' ) for j in range(n+1)] for i in range(m+1)] 
15 
16         dp[0][0]=0
17 
18         # 求解前缀和数组
19         for i in range(1,n+1):
20             preSum[i]+=preSum[i-1]+nums[i-1]  
21         
22         for i in range(1,m+1):
23             for j in range(1,n+1):
24                 for k in range(i-1,j):
25                     tmp_max=max(dp[i-1][k], preSum[j]-preSum[k])
26                     dp[i][j]=min(dp[i][j],tmp_max)
27         
28         return dp[m][n]

 

Guess you like

Origin www.cnblogs.com/zijidan/p/12545162.html