Split Array Largest Sum
410. Split Array Largest Sum
Input:
nums = [7,2,5,10,8]
m = 2
Output:
18
[7,2,5] and [10,8]DP
def splitArray(self, nums: List[int], m: int) -> int:
n = len(nums)
dp = [[sys.maxsize] * (m+1) for _ in range(n+1)]
dp[0][0] = 0
accu_sum = [0] * (n+1)
for i, num in enumerate(nums):
accu_sum[i+1] = accu_sum[i] + num
for i in range(1, n+1):
for j in range(1, m+1):
for k in range(0, i):
dp[i][j] = min(dp[i][j], max(dp[k][j-1], accu_sum[i]-accu_sum[k]))
return dp[n][m]Binary Search
1011. Capacity To Ship packages Within D Days
774. Minimize Max Distance to Gas Station
Last updated