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;
    }
}
相关推荐
studyForMokey6 分钟前
【Android面试】RecylerView专题
android·spring·面试
wunaiqiezixin27 分钟前
MyString类的常见面试问题
c++·面试
_深海凉_29 分钟前
LeetCode热题100-最长公共前缀
算法·leetcode·职场和发展
lizhongxuan35 分钟前
LLM Wiki:让大模型替你打理知识库的完整指南
前端·后端·面试
白眼黑刺猬2 小时前
实时库存预警: 如何实现秒级更新且保证在高并发下不出现“超卖”显示错误?
大数据·面试·职场和发展
明灯伴古佛2 小时前
面试:为什么synchronized是一个悲观锁
java·面试·职场和发展
XiYang-DING2 小时前
【LeetCode】144. 二叉树的前序遍历
算法·leetcode·职场和发展
小白菜又菜3 小时前
Leetcode 3070. Count Submatrices with Top-Left Element and Sum Less Than k
算法·leetcode·职场和发展
不爱吃炸鸡柳3 小时前
C++ STL 核心:string 从入门到精通(面试+源码+OJ实战)
java·c++·面试
Cosolar4 小时前
超越基础 CRUD:LangChain-Chroma 在高并发场景下的架构设计与瓶颈突破
人工智能·后端·面试