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

易乐自助建站成都关键词快速排名

易乐自助建站,成都关键词快速排名,哪些网站做批发衣服,房地产三大巨头距离上一次刷题已经过去了.........嗯............我数一一下............整整十天,今天再来解一道算法题 由于这段时间准备简历,没咋写博客。。今天回来了!!!!!!!&…

距离上一次刷题已经过去了.........嗯............我数一一下............整整十天,今天再来解一道算法题

由于这段时间准备简历,没咋写博客。。今天回来了!!!!!!!!!!!!!!!!

话不多说,看题:

题目:

字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列 beginWord -> s1 -> s2 -> ... -> sk

  • 每一对相邻的单词只差一个字母。
  •  对于 1 <= i <= k 时,每个 si 都在 wordList 中。注意, beginWord 不需要在 wordList 中。
  • sk == endWord

给你两个单词 beginWord 和 endWord 和一个字典 wordList ,返回 从 beginWord 到 endWord 的 最短转换序列 中的 单词数目 。如果不存在这样的转换序列,返回 0 。

示例 1:

输入:beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log","cog"]
输出:5
解释:一个最短转换序列是 "hit" -> "hot" -> "dot" -> "dog" -> "cog", 返回它的长度 5。

示例 2:

输入:beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log"]
输出:0
解释:endWord "cog" 不在字典中,所以无法进行转换。

提示:

  • 1 <= beginWord.length <= 10
  • endWord.length == beginWord.length
  • 1 <= wordList.length <= 5000
  • wordList[i].length == beginWord.length
  • beginWordendWord 和 wordList[i] 由小写英文字母组成
  • beginWord != endWord
  • wordList 中的所有字符串 互不相同

嘶。。。。太难了,不会。。。。 

猝!!!!! 

 

正片开始:

解题思路: 

这道题可以使用广度优先搜索(BFS)算法来解决。BFS 算法从 beginWord 开始,逐层向外扩展,直到找到 endWord。以下是如何使用 BFS 算法解决这道题的思路:

  1. 使用队列 queue 来存储待访问的单词。
  2. 使用集合 visited 来记录已访问过的单词,避免重复访问。
  3. 初始化层数 level 为 1。
  4. 将 beginWord 加入队列 queue,并将 beginWord 加入集合 visited
  5. 循环执行以下步骤,直到队列 queue 为空:
    • 将队列 queue 中的所有单词出队。
    • 对于每个出队的单词 currentWord
      • 如果 currentWord 等于 endWord,则找到最短转换序列,返回层数 level
      • 否则,获取 currentWord 的所有相邻单词 neighbors
      • 对于每个相邻单词 neighbor
        • 如果 neighbor 未被访问过,则将其加入队列 queue 和集合 visited
    • 将层数 level 加 1。
  6. 如果 BFS 结束后仍未找到 endWord,则返回 0。

具体代码实现:

import java.util.*;public class WordLadder {public int ladderLength(String beginWord, String endWord, List<String> wordList) {// 如果字典中不存在 endWord,则返回 0if (!wordList.contains(endWord)) {return 0;}// 使用队列进行广度优先搜索(BFS)Queue<String> queue = new LinkedList<>();queue.offer(beginWord);// 使用集合记录已访问过的单词,避免重复访问Set<String> visited = new HashSet<>();visited.add(beginWord);// 层数,从 1 开始int level = 1;while (!queue.isEmpty()) {int size = queue.size();// 当前层的单词全部出队for (int i = 0; i < size; i++) {String currentWord = queue.poll();// 如果当前单词等于 endWord,则找到最短转换序列,返回层数if (currentWord.equals(endWord)) {return level;}// 遍历当前单词的相邻单词List<String> neighbors = getNeighbors(currentWord, wordList);for (String neighbor : neighbors) {// 如果相邻单词未被访问过,则将其加入队列和 visited 集合if (!visited.contains(neighbor)) {queue.offer(neighbor);visited.add(neighbor);}}}// 层数加 1level++;}// 如果 BFS 结束后仍未找到 endWord,则返回 0return 0;}// 获取当前单词的相邻单词private List<String> getNeighbors(String word, List<String> wordList) {List<String> neighbors = new ArrayList<>();for (String candidate : wordList) {int diffCount = 0;// 比较两个单词,计算不同字符的数量for (int i = 0; i < word.length(); i++) {if (word.charAt(i) != candidate.charAt(i)) {diffCount++;}}// 如果不同字符的数量为 1,则 candidate 是相邻单词if (diffCount == 1) {neighbors.add(candidate);}}return neighbors;}
}

时间复杂度: 

噗噗噗..........

这时间复杂度比我命还长啊。。。。。。。。。。。。。。。。。。。。。

=========================================================================

这道题使用广度优先搜索(BFS)算法,其时间复杂度为 O(V + E),其中:

  • V 是单词列表中的单词数量(即顶点数)
  • E 是单词列表中单词之间的转换关系数量(即边数)

在最坏的情况下,我们需要遍历整个单词列表,并且每个单词与其他所有单词都存在转换关系。因此,时间复杂度为 O(V^2)。

然而,在实际情况下,单词列表中的单词通常只与少数其他单词存在转换关系。因此,时间复杂度通常会更接近 O(V + E)。

总的来说,这道题的 时间复杂度为 O(V + E),在最坏的情况下为 O(V^2)。

 

总结 

这道题要求找出从一个单词到另一个单词的最短转换序列,转换规则是每次只能改变一个字母,且转换后的单词必须在给定的单词列表中。

我们可以使用广度优先搜索(BFS)算法来解决这道题。BFS 算法从起始单词开始,逐层向外扩展,直到找到目标单词。

 

 

 

http://www.hkea.cn/news/145751/

相关文章:

  • 申请做网站 论坛版主惠州seo外包服务
  • 网站照片上传不了域名解析ip
  • 胖小七网站建设2022最新国际新闻10条简短
  • wordpress 网站备份厦门seo外包服务
  • 网站建设及推广培训杭州百度快照优化排名
  • 简单手机网站开发软件关键词排名代发
  • visio画网站开发类图注册域名后怎么建网站
  • 道里网站运营培训北京网络营销咨询公司
  • 目前做网站流行的语言seo关键词排名优化哪家好
  • 长沙营销型网站制作费用seo图片优化
  • 学生诚信档案建设网站seo数据分析
  • 北京住房城乡建设厅网站首页1688官网入口
  • 网站建设需要懂什么软件徐州百度seo排名优化
  • wordpress网站样式网站排名查询
  • 郑州网站建设推销外贸网站推广与优化
  • 当当网站开发系统说明搜索引擎排名google
  • 国外男女直接做的视频网站企业邮箱登录入口
  • 成都可以做网站的公司百度手机助手最新版下载
  • 赤峰网站建设招聘市场营销互联网营销
  • 网站开发后端需要哪些技术友情链接检索数据分析
  • 金华竞价排名 金华企业网站建设常见的网络营销平台有哪些
  • p2p网站开发关键词seo是什么意思
  • 自己免费怎么制作网站合肥今天的最新消息
  • 今日头条新闻10条简短seo网络优化招聘信息
  • 赣州人才网官方网站关键词seo优化软件
  • cad做兼职区哪个网站郑州网络营销公司排名
  • 宁夏银川做网站的公司有哪些网络营销分类
  • 换物网站为什么做不起来中国免费广告网
  • 可以显示一张图片的网站怎么搭建搜索引擎优化策略
  • 精品课程网站建设论文今天的新闻最新消息