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

力扣面试150题--蛇梯棋

Day 64

题目描述

在这里插入图片描述
在这里插入图片描述

思路

这题的难点在于我们需要将值转化为坐标(蛇形),专门写了一个函数Tohanglie来做这个事情。
其他的感觉没啥好说的就是一个简单的宽搜,需要注意的点是,梯子和蛇会跨越传送,这里不一定只往大的值去传送,所以我们需要考虑会不会出现环的问题(这类问题就通过visited数组来记录即可,不要重复访问)。

class Solution {public  int snakesAndLadders(int[][] board) {int n=board.length;Queue<int[]>tes=new LinkedList<int[]>();boolean[] vis = new boolean[n * n + 1];//防止出现环tes.offer(new int[]{1,0});//前面为值 后面为到该点的步数while (!tes.isEmpty()) {int[] be = tes.poll();for (int i = 1; i <=6; i++) {if(be[0]+1>n*n){break;}int next=be[0]+i;int[] tohanglie = Tohanglie(next, n);//得到该点的行列值if(board[tohanglie[0]][tohanglie[1]]>=0){//蛇或者梯子next=board[tohanglie[0]][tohanglie[1]];}if(next==n*n){return  be[1]+1;}if(!vis[next]){vis[next]=true;tes.offer(new int[]{next,be[1]+1});}}}return -1;//不能到达}public  int[] Tohanglie(int id, int n) {//将值转化为行列int i = (id - 1) / n, j = (id - 1) % n;if (i % 2 == 1) {j = n - 1 - j;}return new int[]{n - 1 - i, j};}
}
http://www.dtcms.com/a/241088.html

相关文章:

  • Linux初步介绍
  • C#中LINQ技术:自然语言集成与统一数据操作的艺术
  • 【题解-洛谷】B4292 [蓝桥杯青少年组省赛 2022] 路线
  • 3D Web轻量化引擎HOOPS Communicator赋能一线场景,支持本地化与动态展示?
  • C语言中的段错误(Segmentation Fault):底层原理及解决方法
  • 蓝桥杯 回文日期
  • BIO、NIO、AIO的区别
  • GAMES202-高质量实时渲染(Assignment 4)
  • 你应该使用的 php 加解密函数
  • 【开发技术】Abp.vnext下的JWT处理,添加多种认证处理方式
  • ES Serverless 8.17王牌发布:向量检索「火力全开」,智能扩缩「秒级响应」!
  • 完整的加密解密aes
  • C#中清空DataGridView的方法
  • rk3568 , mipi 屏幕调试(3588s 可以显示,但是3568 不能显示)
  • 【堆垛策略】设计方法
  • NFT模式:数字资产确权与链游经济系统构建
  • BeckHoff -->电脑与PLC连接
  • 今天做的力扣SQL
  • 基于FPGA的PID算法学习———实现P比例控制算法
  • 轻量级屏蔽文件管理方案
  • 深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀”
  • 端口扫描介绍及使用(学习笔记)
  • 苍穹外卖-day02
  • Profinet转CAN网关如何实现profinet与can协议互转
  • C++中auto和auto
  • 即梦图片 3.0 智能参考全量上线,开启 AI 设计零门槛新时代
  • 在 Windows 11 上创建新本地用户账户
  • 三元组 题解
  • 【Dv3Admin】系统视图登录日志API文件解析
  • qt 双缓冲案例对比