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;
    }
}
相关推荐
Warren982 小时前
接口测试理论
docker·面试·职场和发展·eureka·ansible
cyforkk2 小时前
13、Java 基础硬核复习:泛型(类型安全)的核心逻辑与面试考点
java·开发语言·面试
VT.馒头2 小时前
【力扣】2694. 事件发射器
前端·javascript·算法·leetcode·职场和发展·typescript
试着3 小时前
【huawei】机试
华为·面试·机试·手搓代码
编程彩机3 小时前
互联网大厂Java面试:从分布式事务到微服务优化的技术场景解读
java·spring boot·redis·微服务·面试·kafka·分布式事务
编程彩机3 小时前
互联网大厂Java面试:从Spring WebFlux到分布式事务的技术场景解析
java·微服务·面试·分布式事务·spring webflux
kogorou0105-bit3 小时前
前端设计模式:发布订阅与依赖倒置的解耦之道
前端·设计模式·面试·状态模式
练习时长一年4 小时前
LeetCode热题100(颜色分类)
算法·leetcode·职场和发展