day71(1.30)——leetcode面试经典150

909. 蛇梯棋

909. 蛇梯棋

太破防了啊啊啊啊,我的索引++,没有--,就直接超出内存限制,真没招了,找了好久错误,太粗心了啊啊啊啊啊

题目:

题解:

java 复制代码
class Solution {
    public int snakesAndLadders(int[][] board) {
        int n = board.length;
        int target = n*n;
        //值映射坐标
        Map<Integer, int[]> map = new HashMap<>();
        int flag = 1;
        int num = 1;
        //我真服了,这个i没--,我还以为是变量名触发了什么呢
        for(int i=n-1;i>=0;i--) {
            if(flag == 1) {
                for(int j=0;j<n;j++) {
                    map.put(num++, new int[]{i,j});
                }
            }
            else {
                for(int j=n-1;j>=0;j--) {
                    map.put(num++, new int[]{i,j});
                }
            }
            flag = -flag;
        }
        Queue<Integer> queue = new LinkedList<>();
        queue.offer(1);
        //移动次数
        int step=0;
        boolean[] visited = new boolean[target + 1]; // 1-indexed
        visited[1]=true;
        while(queue.size()>0) {
            int size = queue.size();
            step++;

            for(int i=0;i<size;i++) {
                int t = queue.poll();
                int[] l = map.get(t);
                int x = l[0];
                int y = l[1];

                for(int j=t+1;j<=Math.min(target, t+6); j++) {
                    
                     int fin = j;
                    int[] li = map.get(fin);
                    int r = li[0], c = li[1];
                    
                    if (board[r][c] != -1) {
                        fin = board[r][c];
                    }
                    
                    // 如果是终点,直接返回
                    if (fin == target) {
                        return step;
                    }

                    if(visited[fin]==false) {
                        // 标记并入队
                        visited[fin] = true;
                        queue.offer(fin);
                    }
                }
            }
        }
        return -1;
    }
}
相关推荐
To_OC2 小时前
LC 51 N 皇后:我以为难的是回溯,结果栽在了对角线下标
javascript·算法·leetcode
2401_841495643 小时前
【操作系统】进程同步与互斥实验报告
c++·算法·操作系统·进程·并发·同步·互斥
触底反弹4 小时前
🔥 2026 大模型选择指南:别再只看 Benchmark 了,这些维度才是关键!
人工智能·面试
醇氧5 小时前
CountDownLatch / CyclicBarrier / Semaphore 面试高频问答清单
前端·面试·职场和发展
爱刷碗的苏泓舒7 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
黄敬峰8 小时前
从零搞懂 useState 与 Fragment:React 函数式组件的基石
面试
烬羽10 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法
闪电悠米10 小时前
力扣hot100-41.缺失的第一个正数-原地哈希详解
数据结构·算法·哈希算法
星空露珠10 小时前
28种颜色对应名称,
开发语言·数据库·算法·游戏·lua