题目
外卖员每天在大厦中送外卖,大厦共有L层(0<L<=10^5),当他处于第N层楼时,可以每分钟通过步行梯向上达到N+1层,或向下达到N-1层,或者乘坐电梯达到2*N层。给定他所处位置N,以及外卖配送的目的楼层M,计算他送达的最短时间。
输入描述
当前所处楼层N和外卖配送的目的楼层M
输出描述
送达的最短时间
用例1:
输入
5 17
输出
4
说明:
当前处于5层,目标楼层17层,最快的方式是
步行下一层 - 4层
电梯 - 8层
电梯 - 16层
步行上一层 - 17层
共需要4分钟。
思路
1:一个比较简单的动态规划问题。dp[i]表示到达i层需要的最短时间。
2:初始化的时候,到N层以下需要的时间,都减去相应的楼层,即步行向下
for (int i = 0; i <= N; i