问题描述
已知一辆汽车加满油后可行驶d(如d=7)公里,而旅途中有若干个加油站。试设计一个有效算法,指出应在哪些加油站停靠加油使加油次数最少。用数组a存放各加油站之间的距离,如a[ ]={2,7,3,6},表示共有4个加油站,起点到1号加油站的距离为2km,1号到2号加油站的距离为7km,2号到3号加油站的距离为3km,3号到4号加油站的距离为6km。
算法思想
贪心法解决,只需要考虑能不能到下一个站的情况下还能到下下个站,如果可以则在下下个站继续判断是否还可以走,如果不可以情况则是(只能经过一个站,并在那个站加油)又或者是经过两个站不能到达第三个站,则在第二个站进行加油。
代码实现
#include<iostream>
using namespace std;
int oilShop[100];
//说明 输出的车站从第一个开始
void solve(int *array , int n)
{
int oil = 7;
for