leetcode127. 单词接龙(bfs)

给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:

每次转换只能改变一个字母。
转换过程中的中间单词必须是字典中的单词。
说明:

如果不存在这样的转换序列,返回 0。
所有单词具有相同的长度。
所有单词只由小写字母组成。
字典中不存在重复的单词。
你可以假设 beginWord 和 endWord 是非空的,且二者不相同。
示例 1:

输入:
beginWord = “hit”,
endWord = “cog”,
wordList = [“hot”,“dot”,“dog”,“lot”,“log”,“cog”]

输出: 5

解释: 一个最短转换序列是 “hit” -> “hot” -> “dot” -> “dog” -> “cog”,
返回它的长度 5。

代码

class Solution {public int ladderLength(String beginWord, String endWord, List<String> wordList) {Queue<String> queue=new LinkedList<>();boolean[] check=new boolean[wordList.size()];//记录访问了的字符串int len=beginWord.length();for(int i=0;i<wordList.size();i++)//找出与初始字符串只差一位的字符入队{int cnt=0;for(int j=0;j<len;j++){if(wordList.get(i).charAt(j)==beginWord.charAt(j))cnt++;}if(cnt==len-1) {queue.add(wordList.get(i));check[i]=true;}}int res=0;while (!queue.isEmpty())//bfs{int size=queue.size();for(int i=0;i<size;i++){String string=queue.poll();if(string.equals(endWord)) return res+2;//到达了目标字符串for(int j=0;j<wordList.size();j++){if(check[j]) continue;//已经遍历过了int cnt=0;for(int k=0;k<len;k++)//找出与当前字符串只差一位的字符入队{if(wordList.get(j).charAt(k)==string.charAt(k))cnt++;}if(cnt==len-1) {queue.add(wordList.get(j));check[j]=true;}}}res++;}return 0;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法之旅 | 快速排序法

HTML5学堂-码匠&#xff1a;前几期“算法之旅”跟大家分享了冒泡排序法和选择排序法&#xff0c;它们都属于时间复杂度为O(n^2)的“慢”排序。今天跟大家分享多种排序算法里使用较广泛&#xff0c;速度快的排序算法—— 快速排序法 [ 平均时间复杂度为O (n logn) ]。Tips 1&…

springmvd接收参数问题

问题描述&#xff1a; 好久不写博客了&#xff0c;今天遇到一个问题&#xff0c;那就是post请求时&#xff0c;参数接收不到&#xff0c;当时我很纳闷&#xff0c;看代码&#xff1a; 就是这样几个参数&#xff0c;我使用postman请求时无法获取参数&#xff1a; 报错信息&#…

figma下载_如何在Figma中创建逼真的3D对象

figma下载by Gbolahan Taoheed Fawale通过Gbolahan Taoheed Fawale 如何在Figma中创建逼真的3D对象 (How to create realistic 3D objects in Figma) Prior to using Figma, I used Adobe Illustrator for most of my designs (like logos, mockups, illustrations, and so on…

OpenGL中的二维编程——从简单的矩形开始

一、OpenGL的组成 图元函数&#xff08;primitive function&#xff09;指定要生成屏幕图像的图元。包括两种类型&#xff1a;可以在二维、三维或者四维空间进行定义的几何图元&#xff0c;如多边形&#xff1b;离散实体&#xff1b;位图。属性函数&#xff08;attribute funct…

圆与平面的接触面积_如果一个绝对的圆放在绝对的平面上,接触面是不是无限小?...

这种问题其实并不难解答&#xff1a;如果你真的能找到一个绝对的圆还有一个绝对平的平面上&#xff0c;并且保证放上去之后圆和平面不会有任何变化&#xff0c;那么接触面就可以是无限小&#xff01;如果不能&#xff0c;很抱歉&#xff0c;接触面很显然就不会是无限小&#xf…

leetocde1129. 颜色交替的最短路径(bfs)

在一个有向图中&#xff0c;节点分别标记为 0, 1, …, n-1。这个图中的每条边不是红色就是蓝色&#xff0c;且存在自环或平行边。 red_edges 中的每一个 [i, j] 对表示从节点 i 到节点 j 的红色有向边。类似地&#xff0c;blue_edges 中的每一个 [i, j] 对表示从节点 i 到节点…

第38天:运算符、字符串对象常用方法

一、运算符 一元操作符 &#xff0c; --&#xff0c; &#xff0c; - 5 -6 逻辑操作符 !&#xff0c; &&&#xff0c; || 基本运算符 , -, *, /, % 关系操作符 >, <, >, <, , , !, ! 赋值 判断 全等 条件操作符 &#xff08;三…

Redux Todos Example

此项目模板是使用Create React App构建的&#xff0c;它提供了一种简单的方法来启动React项目而无需构建配置。 使用Create-React-App构建的项目包括对ES6语法的支持&#xff0c;以及几种非官方/尚未最终形式的Javascript语法 先看效果 这个例子可以帮助你深入理解在 Redux 中 …

有效电子邮件地址大全_如何优雅有效地处理介绍电子邮件

有效电子邮件地址大全by DJ Chung由DJ Chung 如何优雅有效地处理介绍电子邮件 (How to handle intro emails gracefully and effectively) 您想帮个忙时不想忘恩负义... (You don’t want to sound ungrateful when asking for a favor…) Let me tell you the story that ins…

notability录音定位_Notability的一些使用技巧?

作为使用了一年Notability的考研狗 今天也来回答回答这个问题&#xff0c;希望可以给考研的同学一点点帮助。这个软件的优点估计大家都知道&#xff0c;我在这里就不多说了。好吧&#xff0c;还有一个原因是我比较懒&#xff01;好了不多说废话了&#xff0c;等会你们要打我了本…

python实现软件的注册功能(机器码+注册码机制)

sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId1005269003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare 一、前言&#xff1a;目的&#xff1a;完成已有python图像处理工具的注册功能功能&am…

leetcode1306. 跳跃游戏 III(bfs)

这里有一个非负整数数组 arr&#xff0c;你最开始位于该数组的起始下标 start 处。当你位于下标 i 处时&#xff0c;你可以跳到 i arr[i] 或者 i - arr[i]。 请你判断自己是否能够跳到对应元素值为 0 的 任一 下标处。 注意&#xff0c;不管是什么情况下&#xff0c;你都无法…

Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

原文:Win10 UWP开发系列&#xff1a;使用VS2015 Update2ionic开发第一个Cordova App安装VS2015 Update2的过程是非常曲折的。还好经过不懈的努力&#xff0c;终于折腾成功了。 如果开发Cordova项目的话&#xff0c;推荐大家用一下ionic这个框架&#xff0c;效果还不错。对于Cor…

vavr_使用Vavr在Java 8流中更好的异常处理

vavrby Rajasekar Elango由Rajasekar Elango In this post, I will provide tips for better exception handling in Java 8 streams using the Functional Java library Vavr.在这篇文章中&#xff0c;我将提供使用Functional Java库Vavr在Java 8流中更好地处理异常的技巧。 …

Python-strace命令追踪ssh操作

Python-strace命令追踪ssh操作 通过strace 命令追踪ssh的进程ID&#xff0c;记录操作的命令[实际上是内核里面记录的东西]&#xff0c;进行操作日志的Py解析达到效果 追踪进程并写入ssh操作到文件中 Ps: 此时机器A已经ssh登录了机器B&#xff0c;取得它的ssh进程PID 机器A登录后…

java h2 derby_嵌入式H2数据库的Spring配置以进行测试

小编典典由于我不知道是否有任何工具可以检查数据库&#xff0c;我认为一个简单的解决方案是使用支持HSQL&#xff0c;H2和Derby 的Spring嵌入式数据库(3.1.x docs&#xff0c;current docs)。 。使用H2&#xff0c;你的xml配置如下所示&#xff1a;如果你更喜欢基于Java的配置…

基础的python程序_Python程序入门

Python语法元素入门Python语法元素分析注释注释&#xff1a;程序员在代码中加入的说明信息&#xff0c;不被计算机执行注释的两种方法&#xff1a;单行注释以#开头多行注释以开头和结尾# Here are the commentsThis is a multiline commerntused in Python缩进1个缩进 &#xf…

解决阿里云服务器磁盘报警

一般磁盘报警涉及到实际磁盘和inode文件索引节点 1.df -h检查磁盘占用不高 2.df -i检查inode文件索引节点有一个挂载目录达到89%,里面有一个目录产生大量的4k大的缓存文件,删除该目录下的文件解决: 删除该目录下小于4kb的文件 find /data/tmp -type f -size -4 -exec rm -rf {}…

leetcode310. 最小高度树(bfs)

对于一个具有树特征的无向图&#xff0c;我们可选择任何一个节点作为根。图因此可以成为树&#xff0c;在所有可能的树中&#xff0c;具有最小高度的树被称为最小高度树。给出这样的一个图&#xff0c;写出一个函数找到所有的最小高度树并返回他们的根节点。格式该图包含 n 个节…

如何构建自己的免费无服务器评论框

by Shaun Persad通过Shaun Persad 如何构建自己的免费无服务器评论框 (How you can build your own free, serverless comment box) Contentful’s flexible content modeling goes far beyond blog posts. Here’s how you can leverage Contentful and Netlify to create a …