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]