2 ms·
ok this is what i got def splitArray(self, nums: List[int], m: int) -> int: @lru_cache(maxsize=None) def minSum(pos,count): curr
by dominotw 6y ago
ok this is what i got
def splitArray(self, nums: List[int], m: int) -> int:
@lru_cache(maxsize=None)
def minSum(pos,count):
currentSum = 0
minSoFar = float("inf")
for i in range(pos,len(nums)):
currentSum+=nums[i]
if count !=1:
next = minSum(i+1,count-1)
maxSplit = max(currentSum,next)
minSoFar = min(minSoFar,maxSplit)
return currentSum if count ==1 else minSoFar
return minSum(0,m)
I think putting that @lru_cache annotation is what makes this a Dynamic programming problem. If thats the case, i think its resonable interview question.