外卖侠

之前看到某w有个机考题目,用BFS写了下。

原贴可参考:

https://www.nowcoder.com/discuss/721268?channel=-1&source_id=discuss_terminal_discuss_sim_nctrack&ncTraceId=d8ccd19b56bd40559427540ad48a2528.169.16301666546391309
“给定起始位置N和目的楼层M,骑手可以上一层楼N+1/下一层楼N-1/坐电梯上到2N,花费时间都是1s,问最快多久能到达目的楼层

import java.util.LinkedList;
import java.util.Queue;

class Solution {


    public int waimai(int N, int M) {
        int step = 0;
        Queue<Integer> queue = new LinkedList<>();
        if (N == M) return 0;
        queue.add(N);
        while (queue.size()>0){
            //一定要单独写,防止更新。
            int size = queue.size();
            for (int i = 0; i < size; i++) {
                int floor = queue.poll();
                if(floor==M){
                    return step;
                }
                queue.offer(floor - 1);
                queue.offer(floor + 1);
                queue.offer(2 * floor);
            }
            step++;
        }
        return step;
    }



    public static void main(String[] args) {
        System.out.println(new Solution().waimai(2,6));
    }
}
全部评论

相关推荐

02-26 13:46
湖南大学 Java
Java抽象小篮子:要用外卖就必须得额外包装下,你这没包装好啊,可以看看我的精品贴子汇总,里面有额外扩展了很多技术亮点的魔改外卖话术,和7000字轮子项目话术
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务