当前为游客只读模式。登录后可提交代码判题并保存草稿与进度。
练题计划 · 力扣 HOT 100
分割数组的最大值
困难splitArray()时间限制 2000 ms内存限制 128 MB复杂度要求 时间 O(n log(sum(nums))),空间 O(1)
分割数组的最大值
给定一个非负整数数组 nums 和一个整数 k,你需要将这个数组分成 k 个非空的连续子数组。
设计一个算法使得这 k 个子数组各自和的最大值最小。
约定
1 <= nums.length <= 10000 <= nums[i] <= 10^61 <= k <= min(50, nums.length)
输入
nums:非负整数数组k:要分成的连续子数组个数
输出
在所有合法划分中,k 个子数组各自和的最大值的最小值。
示例一
输入:
nums = [7,2,5,10,8], k = 2
输出:
18
解释:一共有四种分法。最优划分是 [7,2,5] 和 [10,8],两个子数组的和分别为 14 和 18,最大和为 18。
示例二
输入:
nums = [1,2,3,4,5], k = 2
输出:
9
解释:最优划分是 [1,2,3] 和 [4,5],最大和为 9。
示例三
输入:
nums = [1,4,4], k = 3
输出:
4
解释:最优划分是 [1]、[4]、[4],最大和为 4。
复杂度要求
- 时间复杂度:
O(n log(sum(nums))),n为数组长度 - 空间复杂度:
O(1)
Loading...
输入
[[7,2,5,10,8],2]
预期输出
18