题目
外卖员每天在大厦中送外卖,大厦共有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

本文介绍了华为OD机考中的一道题目,外卖员需从当前楼层N到达目的楼层M,通过步行和电梯计算最短时间。这是一个动态规划问题,通过建立dp数组和转移方程求解,分别给出了Java、C++、Python和JavaScript的实现代码。
订阅专栏 解锁全文
2112

被折叠的 条评论
为什么被折叠?



