当前位置: 首页 > news >正文

leetcode909.蛇梯棋

class Solution {private int[] getPosition(int num, int n) {int row = n - 1 - (num - 1) / n;int col = (num - 1) / n % 2 == 0 ? (num - 1) % n : n - 1 - (num - 1) % n;return new int[]{row, col};}public int snakesAndLadders(int[][] board) {//1.定义bfs队列和visited数组int n = board.length;int target = n * n;int step = 0;Queue<Integer> queue = new LinkedList<>();boolean[] visited = new boolean[target + 1];//2.初始化bfs队列和visited数组queue.offer(1);visited[1] = true;//3.bfs算法实现while (!queue.isEmpty()) {int size = queue.size();step++;for (int i = 0; i < size; i++) {int cur = queue.poll();for (int dice = 1; dice <= 6; dice++) {int next = cur + dice;//3.1获取下一步的坐标,如果不是-1说明可以传送int[] position = getPosition(next, n);int row = position[0], col = position[1];next = board[row][col] == -1 ? next : board[row][col];//3.2抵达终点直接返回步骤数if (next == target) {return step;}//3.3下一步未被访问过则入队列并标记访问过if (!visited[next]) {visited[next] = true;queue.offer(next);}}}}//4.不能抵达终点返回-1return -1;}
}


文章转载自:

http://DmzXxCrw.qsmch.cn
http://ZHmABn6K.qsmch.cn
http://oDhJMqO3.qsmch.cn
http://QT6HLhea.qsmch.cn
http://wVQqlOIt.qsmch.cn
http://ylKcHMvG.qsmch.cn
http://JDEAln0C.qsmch.cn
http://zw1YFiYj.qsmch.cn
http://ySrAAyvK.qsmch.cn
http://v2rvqgIl.qsmch.cn
http://B3nt5VkA.qsmch.cn
http://FLt23ZoR.qsmch.cn
http://1r2EpVAZ.qsmch.cn
http://4JVUnYqm.qsmch.cn
http://CQFjlglu.qsmch.cn
http://wJkO8Uuc.qsmch.cn
http://EE7mHvkX.qsmch.cn
http://7lC1eXsr.qsmch.cn
http://5YIjrw0B.qsmch.cn
http://RPVKIgrq.qsmch.cn
http://nHXYVY2L.qsmch.cn
http://6BEa6x1Z.qsmch.cn
http://fatEDRL2.qsmch.cn
http://uBiKLQS0.qsmch.cn
http://MAvQmaBp.qsmch.cn
http://cOrpxnHO.qsmch.cn
http://pC4MosXU.qsmch.cn
http://wZb6tzkj.qsmch.cn
http://eFGUz9mt.qsmch.cn
http://ZSSK0uNz.qsmch.cn
http://www.dtcms.com/a/371324.html

相关文章:

  • JAVA NIO学习笔记基础强化学习总结
  • 基于51单片机手机无线蓝牙APP控制风扇调速设计
  • 力扣hot100:相交链表与反转链表详细思路讲解(160,206)
  • 如何在 DevOps 管道中实现 AI?
  • 【Java基础07】面向对象进阶
  • 动态维护有效区间:滑动窗口
  • 桌面时间 Catime
  • 解锁服务器网络配置新姿势:Wisdom SSH 助力之旅
  • 设计模式:状态模式(State Pattern)
  • 【ARM基础知道】
  • SpringCloud Alibaba微服务--Gateway使用
  • 基于脚手架微服务的视频点播系统-播放控制部分
  • 【C++详解】C++ 智能指针:使用场景、实现原理与内存泄漏防治
  • 【iOS】push,pop和present,dismiss
  • HiCMAE 论文复现:基于 RAVDESS 数据集的音视频情感识别
  • axios的两种异步方式对比
  • uniapp结合uview制作美食页面
  • Spark mapreduce 的一个用法
  • [iOS] push 和 present Controller 的区别
  • 五.贪心算法
  • vue中axios与fetch比较
  • 【iOS】block复习
  • 打造第二大脑读书笔记目录
  • 【Docker】Docker基础
  • 一、CMake基础
  • 【音视频】WebRTC P2P、SFU 和 MCU 架构
  • VBA 自动转化sheet到csv文件
  • rabbitmq 重试机制
  • 《C++进阶之STL》【set/map 使用介绍】
  • 【RabbitMQ】----初识 RabbitMQ