一、题目描述
橱窗里有一排宝石,不同的宝石对应不同的价格,宝石的价格标记为 gems[i],0<=i<n, n = gems.length
宝石可同时出售0个或多个,如果同时出售多个,则要求出售的宝石编号连续;
例如客户最大购买宝石个数为m,购买的宝石编号必须为gems[i],gems[i+1]…gemsi+m-1
假设你当前拥有总面值为value的钱,请问最多能购买到多少个宝石,如无法购买宝石,则返回 0。
二、输入描述
第一行输入n,参数类型为int,取值范围:[0,10^6],表示橱窗中宝石的总数量。
之后n行分别表示从第0个到第n-1个宝石的价格,即gems[0]到gems[n-1]的价格,类型为int,取值范围:(0,1000]。
之后一行输入v,类型为int,取值范围:[0,10^9]表示你拥有的钱。
三、输出描述
输出int类型的返回值,表示最大可购买的宝石数量。
1、输入
7
8
4
6
3
1
6
7
10
2、输出
3
四、解题思路
- 使用两个指针 left 和 right 来表示滑动窗口的左右边界,初始
该博客介绍了如何解决华为在线开发者(OD)机试中的一道题目,涉及到滑动窗口算法。题目要求在给定预算内,计算最多能购买连续编号的宝石个数。博主提供了详细的解题思路、Java代码实现以及输入输出示例,并预告了下一篇文章的内容。
订阅专栏 解锁全文
2318





