day73(2.1)——leetcode面试经典150

127. 单词接龙

127. 单词接龙

这个跟昨天的题还是有点不一样的,这个如果按照昨天的方法,会超时,因为时间已经到了50000

题目:

题解:

java 复制代码
class Solution {
    public int ladderLength(String beginWord, String endWord, List<String> wordList) {
        //创建队列
        Queue<String> queue = new LinkedList<>();
        //将起始单词放入队列
        queue.offer(beginWord);
        //用map来进行确认是否是有效访问位
        //如果该单词在map中,证明已经访问过
        Map<String, Integer> visted = new HashMap<>();
        visted.put(beginWord, 1);
        //转换步数
        int step = 0;
        //用来确认是否在字典中
        Set<String> wordSet = new HashSet<>(wordList);
        while(queue.size()>0) {
            int size = queue.size();
            step++;
            for(int i=0;i<size;i++) {
                //取出队列的单词
                String t = queue.poll();
                //看是否是endWord
                if(t.equals(endWord)) {
                    return step;
                }

                for(int j=0;j<t.length();j++) {
                    StringBuilder s = new StringBuilder(t);
                    for(char c='a';c<='z';c++) {
                        if(s.charAt(j)==c) {
                            continue;
                        }
                        s.setCharAt(j,c);
                        //如果字典中存在该单词,且该单词没有被访问过
                        if(wordSet.contains(s.toString())&&!visted.containsKey(s.toString())) {
                            //加入队列中
                            queue.offer(s.toString());
                            //将t设置成有效访问位
                            visted.put(s.toString(), 1);
                        }
                    }
                }
            }
        } 
        return 0;
    }
}
相关推荐
nice_lcj5201 小时前
深入理解 Java 反射:从 Class 对象到方法调用(含性能实测 + 迷你 IOC 实战 + 面试考点)
java·开发语言·后端·面试
D e re k ZH5 小时前
C++ 并发、未定义行为与工程化难点(No 3)
数据结构·c++·算法·面试
香蕉大香蕉(06敬畏市场)8 小时前
MySQL 单点详解(08)
java·数据库·mysql·面试·八股
Thanks_ks9 小时前
常见 HTTP 状态码的坑:301/302、401/403、500/502 之间差的那一个词
计算机网络·nginx·http·面试·状态码·后端开发·浏览器缓存
怕浪猫9 小时前
Super-agent 在各大模型厂商的应用情况
算法·面试·github
天真小巫9 小时前
2026.11.1总结
职场和发展
滼10 小时前
AI 数据安全面试应答框架:从大框架到小点
大数据·人工智能·安全·面试·安全架构
ZhengEnCi14 小时前
面试官为什么总问底层原理:你不是不如他,而是他被「筛选器」困住了
面试·程序员·求职
苏三的开发日记14 小时前
MySQL InnoDB 与 Spring Boot 事务机制
面试
夕除1 天前
Redis 过期策略
redis·笔记·面试