一、题目描述:
一辆虚拟汽车在加满油之后可以行驶 n km。旅途中有 k 个加油站。设计一个有效算法,使得沿途加油的次数最少。
样例:
输入:
7(表示汽车加满油之后能行驶的最大距离)
7(表示沿途加油站的数目)
1 2 3 4 5 1 6 6(表示加油站之间的距离,包括起点和终点,所以是7+1段距离)
输出:
4(最少加油次数)
二、算法分析:
这个算法的关键思想就是:保证每一次的加完油之后走到最长的路径时,才加油。也就是说能走完上一个加油站,但是到不了下一个加油站,就在上一个加油站加油。
所以程序中借助两个变量来记录此次加油还是不加油的局部累计距离行驶情况,来进一步决策是否在该加油站进行加油。