Finish problem 0410-split-array-largest-sum

This commit is contained in:
Johan Sandoval
2026-07-23 15:08:58 -05:00
parent 25956cc25b
commit 472bd07e11
2 changed files with 35 additions and 0 deletions
@@ -0,0 +1,22 @@
def pieces_needed(nums: list[int], limit: int) -> int:
pieces = 1
total = limit
for num in nums:
if total - num >= 0:
total -= num
else:
total = limit - num
pieces += 1
return pieces
class Solution:
def splitArray(self, nums: list[int], k: int) -> int:
lo, hi = max(nums), sum(nums)
while lo < hi:
limit = (lo + hi) // 2
if pieces_needed(nums, limit) > k:
lo = limit + 1
else:
hi = limit
return lo
@@ -0,0 +1,13 @@
import pytest
from solution import Solution
@pytest.mark.parametrize(
"nums, k, expected",
[
([7, 2, 5, 10, 8], 2, 18),
([1, 2, 3, 4, 5], 2, 9),
],
)
def test_split_array(nums, k, expected):
assert Solution().splitArray(nums, k) == expected