1. Word Ladder
    思路一:单向bfs, 使用visited数组记录哪些已经访问过了, 访问过的就不允许再次入队, 同时这里想到的是使用26个英文字母,枚举可能的取值, 类似brute force
    思路二:双向bfs,使用两个set,这里没有使用queue,是因为需要在queue里查询,不方便.
    另外,需要注意的一点是,每次遍历时,都是取size较小的来做搜索,初始时,各插入头和尾,之后每次取最小的set来拓展, 这样就实现了交替访问两个set,
    是两者的高度在 l/2, 这样可以缩短一般的时间

  2. 单词接龙 II
    思路一:因为要存储最终的结果,所以图是一定要建立的,通常我们可以通过维护每个节点的子节点,即一个map,每个map里是一个数组
    我们可以称之为children数组活着parent数组
    2)每遍历一层节点后,从wordlist中删除掉这些节点,因为本题是有源节点的,从源节点看,前一层的节点不应该再次呗遍历,因为长度变长了
    3)对于重复的问题,可以使用hastset来解决
    4)最后通过dfs,遍历输出结果

思路二:双向bfs + dfs
解法跟思路一类似,只是需要创建两个set,然后需要不断交换两个set

  1. Race Car
    思路一:bfs解法有一个重要的技巧,即利用一个set,记录已经出现过的路径,这样bfs枚举到重复路径时,可以直接跳过,这是一个有效的prunning method.

leetcode BFS解题思路的更多相关文章

  1. leetcode array解题思路

    Array *532. K-diff Pairs in an Array 方案一:暴力搜索, N平方的时间复杂度,空间复杂度N 数组长度为10000,使用O(N平方)的解法担心TLE,不建议使用,尽管 ...

  2. [LeetCode] 3Sum 解题思路

    Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...

  3. leetcode每日解题思路 221 Maximal Square

    问题描述: 题目链接:221 Maximal Square 问题找解决的是给出一个M*N的矩阵, 只有'1', '0',两种元素: 需要你从中找出 由'1'组成的最大正方形.恩, 就是这样. 我们看到 ...

  4. Z1. 广度优先搜索(BFS)解题思路

    /** BFS 解题思路 特点:从某些特定的节点开始,感染相邻的节点; 被感染的节点,再感染其相邻的节点,以此类推. 题目常见于数据结构包括 二维数组.树.图 **/ /** 1). 二维数组特定节点 ...

  5. [LeetCode] 45. Jump Game II 解题思路

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  6. [LeetCode] 76. Minimum Window Substring 解题思路

    Given a string S and a string T, find the minimum window in S which will contain all the characters ...

  7. [LeetCode] Minimum Size Subarray Sum 解题思路

    Given an array of n positive integers and a positive integer s, find the minimal length of a subarra ...

  8. [LeetCode] Word Break 解题思路

    Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separa ...

  9. [LeetCode] Longest Valid Parentheses 解题思路

    Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...

随机推荐

  1. python 有关引用的一些问题

    python 有关引用的一些问题 print id.__doc__ ​ id(object) -> integer Return the identity of an object. This ...

  2. JavaSE 手写 Web 服务器(二)

    原文地址:JavaSE 手写 Web 服务器(二) 博客地址:http://www.extlight.com 一.背景 在上一篇文章 <JavaSE 手写 Web 服务器(一)> 中介绍了 ...

  3. dd装机

    如何在 Linux 系统中使用 dd 命令而不会损毁你的磁盘 使用 Linux 中的 dd 工具安全.可靠地制作一个驱动器.分区和文件系统的完整镜像. _这篇文章节选自 Manning 出版社出版的图 ...

  4. python中高阶函数学习笔记

    什么是高阶函数 变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数 def fun(x, y, f): print f(x), f(y) fun ...

  5. 最大开源代码sourceforge 简介 及视音频方面常用的开源代码

    所有的音视频凯源代码在这里:http://sourceforge.net/directory/audio-video/os:windows/,你可以下载分析,视频不懂请发邮件给我,帮你分析. 0.视频 ...

  6. Management

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. java中Mongo

    1.  query.fields().include("idfa").include("imei").include("id").inclu ...

  8. 算法题:求一个序列S中所有包含T的子序列(distinct sub sequence)

    题: 给定一个序列S以及它的一个子序列T,求S的所有包含T的子序列.例: S = [1, 2, 3, 2, 4] T = [1, 2, 4] 则S的所有包含T的子序列为: [1, 2, 3, 2, 4 ...

  9. Web应用层协议---HTTP

    处于协议栈顶层的应用层协议定义了运行在不同端系统的应用程序进程如何相互传递报文.定义内容如下: 1.交换的报文类型.请求报文和响应报文. 2.各种报文类型的语法,如报文中的各个字段及这这些字段是如何描 ...

  10. 浅谈使用 PHP 进行手机 APP 开发(API 接口开发)

    做过 API 的人应该了解,其实开发 API 比开发 WEB 更简洁,但可能逻辑更复杂,因为 API 其实就是数据输出,不用呈现页面,所以也就不存在 MVC(API 只有 M 和 C),那么我们来探讨 ...