当前位置: 首页 > 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};}
}

相关文章:

  • 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比例控制算法
  • 轻量级屏蔽文件管理方案
  • wordpress 好玩的功能/网络关键词优化软件
  • 做网站建设的网站/360关键词推广
  • 广州 网站建设/网页设计主要做什么
  • 建立一个网站的费用/腾讯广告
  • 做百度ssp的网站开发人/昆明新闻头条最新消息
  • 那个网站的公众后推广做的好/重庆seo教程