将数组拆分为K个非空子数组求首尾和最值的算法问题
数组拆分极值问题
请将给定数组拆分为K个非空的子数组,使得所有子数组的首尾元素之和的总和取得最大值或最小值。
规则说明:若子数组仅包含1个元素,则该元素同时作为首元素和尾元素计算两次。
示例1
输入参数:A=[1,3,5,1],K=2
- 最大值求解结果:输出子数组为
[1,3]、[5,1],总和为(1+3)+(5+1)=10 - 最小值求解结果:输出子数组为
[1]、[3,5,1],总和为(1+1)+(3+1)=6
示例2
输入参数:A=[1,4,2,5,2],K=3
- 最大值求解结果:输出子数组为
[1,4,2]、[5]、[2],总和为(1+2)+(5+5)+(2+2)=17 - 最小值求解结果:输出子数组为
[1]、[4]、[2,5,2],总和为(1+1)+(4+4)+(2+2)=14
更新说明:已补充问题示意图,便于更清晰理解需求。
内容的提问来源于stack exchange,提问作者poonam maheshwari
相关产品推荐
相关产品推荐

