AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3256. 贪吃的猴子

中等通过率 72% · 提交 193 · 通过 138
滑动窗口贪心数学固定滑窗

小慕在整理仓库时,发现一排货架,每个货架上放着若干箱饮料。每个货架的饮料箱数由数组numbers给出。小慕每次只能从整排货架的开头或末尾取货,并且总共只能取N次,请问小慕最多能拿到多少箱饮料。

提示:带虚线的词点一下有通俗解释。

输入描述

<p> 第一行为数组numbers的长度 </p> <p> 第二行为数组numbers的值,每个数字通过空格分开 </p> <p> 第三行输入为N,表示获取的次数 </p> <p> <br /> </p> <p> 1 <= numbers.length <= 100000 </p> <p> 1<= numbers[i] <= 100 </p> <p> 1 <= N <= numbers.length </p>

输出描述

按照题目要求能获取的最大数值

示例

示例 1

输入

7
1 2 2 7 3 6 1
3

输出

10

说明:第一次获取香蕉,无论是从行的开头或者末尾获取,得到的香蕉根数目为1。但是,从行未尾获取能获取到最优的策略,后面可以直接得到香蕉根数目6和3。因此最终根数为1+6+3=10

示例 2

输入

7
2 2 2 7 3 6 1
3

输出

10

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
固定滑窗:双端取香蕉 1 2 2 7 3 6 1 左端 右端 滑窗(N=3): 1 6 3 总和 = 10
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「贪吃的猴子」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。