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;
    }
}
相关推荐
罗湖老棍子5 分钟前
【例 3】校门外的树(信息学奥赛一本通- P1537)
数据结构·算法·树状数组
guguhaohao15 分钟前
平衡二叉树(AVL),咕咕咕!
数据结构·c++·算法
一叶落43818 分钟前
LeetCode 137. 只出现一次的数字 II —— 位运算解法
c语言·数据结构·算法·leetcode·哈希算法
掘金安东尼19 分钟前
⏰前端周刊第 456 期(v2026.3.15)
前端·javascript·面试
程序员爱钓鱼21 分钟前
Go运行时系统解析: runtime包深度指南
后端·面试·go
阿豪只会阿巴21 分钟前
咱这后续安排
c++·人工智能·算法·leetcode·ros2
逆境不可逃27 分钟前
LeetCode 热题 100 之 215. 数组中的第K个最大元素 347. 前 K 个高频元素 295. 数据流的中位数
算法·leetcode·职场和发展
凤年徐32 分钟前
优选算法——滑动窗口
c++·算法
DDzqss35 分钟前
3.14打卡day35
算法
WHS-_-202237 分钟前
mCore: Achieving Sub-millisecond Scheduling for 5G MU-MIMO Systems
java·算法·5g