【发布时间】:2020-11-19 09:37:28
【问题描述】:
问题有点像,找到路径中的最大可达点。假设我们有一个包含 6 个元素的数组。假设数组已排序。数组的第一个元素的值为零。
考虑到数组的元素是{'0','200','375','550','750','950'}。
假设我们必须输入一个介于 0 和 950 之间的值。我们必须从数组中返回小于或等于输入值的最大值的索引。
我正在尝试使用while循环来完成这项工作,但我被卡住了!!!
这是我的代码
void compute_min_refills(int value, int n, vector<int> stops) {
int currentrefill=0,num=0,lastrefill=0;
lastrefill = currentrefill;
while(currentposition <= n && stops[currentposition + 1] - stops[lastposition] < Value){
currentposition = currentposition + 1;
}
cout<<currentposition<<' ';
}
请帮助解决这个问题。
【问题讨论】:
-
你遇到了什么问题?
-
你还能指定什么是 n 吗?您也在比较等于 n,
currentposition <= n,如果 n 是数组的长度,那么我们不与 n 比较,因为最后一个元素是 n-1 -
可以说,如果我的值是 400,那么输出应该是 2,因为 375 小于 400...但我得到 5
-
n 是数组中的元素个数
-
你能把你的完整代码贴在这里吗?
标签: c++ arrays while-loop