当前位置: 首页 > 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.xdnf.cn/news/952831.html

相关文章:

  • 开发Vue.js组件的二三事
  • if 选择结构
  • 下载https协议的网络图片,并转为Base64
  • 浅谈非理想性因素对星座图的影响
  • ArcGIS Pro制作水平横向图例+多级标注
  • PIN码vs密码,电脑登录的快捷键你用对了吗?
  • CppCon 2015 学习:STL Algorithms in Action
  • Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
  • The Trade Desk推出DealDesk,试图让交易ID不再糟糕
  • HTTP 与 TCP 协议的区别与联系
  • 【C++】unordered_set和unordered_map
  • tauri项目,如何在rust端读取电脑环境变量
  • 画质MxPro:优化手游体验,畅享高清画质
  • Linux初步介绍
  • 【VLNs篇】07:NavRL—在动态环境中学习安全飞行
  • 多轮对话实现
  • react更新页面数据,操作页面,双向数据绑定
  • 免费数学几何作图web平台
  • 在阿里云上搭建n8n
  • React Native 弹窗组件优化实战:解决 Modal 闪烁与动画卡顿问题
  • 【Mini-F5265-OB开发板试用测评】1、串口printf输出
  • C++中auto和auto
  • 芯片设计中的通信“动脉”:I2C与I3C IP深度解析
  • ubuntu清理垃圾
  • CTFshow-PWN-栈溢出(pwn48)
  • 【深度学习新浪潮】大模型中,active parameters和total parameters都是什么?
  • “扛不住了就排队!”——聊聊消息队列在高并发系统中的那些硬核用途
  • STM32使用旋转电位器自制调光灯
  • 麒麟系统编译安装QtCreator
  • 01__C++入门