
BFS
Viscu
勤能补拙。
展开
-
leetcode 126. 单词接龙 II bfs+dfs
给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则: 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。 说明: 如果不存在这样的转换序列,返回一个空列表。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字...原创 2018-09-07 19:40:41 · 538 阅读 · 0 评论 -
leetcode 301. 删除无效的括号
删除最小数量的无效括号,使得输入的字符串有效,返回所有可能的结果。 说明: 输入可能包含了除 ( 和 ) 以外的字符。 示例 1: 输入: “()())()” 输出: [“()()()”, “(())()”] 示例 2: 输入: “(a)())()” 输出: [“(a)()()”, “(a())()”] 示例 3: 输入: “)(” ...原创 2018-09-09 01:28:22 · 1666 阅读 · 0 评论 -
leetcode 847. 访问所有节点的最短路径 BFS+位运算
给出 graph 为有 N 个节点(编号为 0, 1, 2, …, N-1)的无向连通图。 graph.length = N,且只有节点 i 和 j 连通时,j != i 在列表 graph[i] 中恰好出现一次。 返回能够访问所有节点的最短路径的长度。你可以在任一节点开始和停止,也可以多次重访节点,并且可以重用边。 示例 1: 输入:[[1,2,3],[0],[0...原创 2018-09-08 22:51:21 · 1055 阅读 · 0 评论 -
leetcode 854. 相似度为 K 的字符串 BFS
如果可以通过将 A 中的两个小写字母精确地交换位置 K 次得到与 B 相等的字符串,我们称字符串 A 和 B 的相似度为 K(K 为非负整数)。 给定两个字母异位词 A 和 B ,返回 A 和 B 的相似度 K 的最小值。 示例 1: 输入:A = “ab”, B = “ba” 输出:1 示例 2: 输入:A = “abc”, B = “bca” 输...原创 2018-09-08 21:53:05 · 1162 阅读 · 0 评论 -
leetcode 815. 公交路线 图+BFS
我们有一系列公交路线。每一条路线 routes[i] 上都有一辆公交车在上面循环行驶。例如,有一条路线 routes[0] = [1, 5, 7],表示第一辆 (下标为0) 公交车会一直按照 1->5->7->1->5->7->1->… 的车站路线行驶。 假设我们从 S 车站开始(初始时不在公交车上),要去往 T 站。 期间仅可乘坐公交车,求出原创 2018-09-08 17:05:59 · 1232 阅读 · 0 评论 -
leetcode 407. 接雨水 II BFS
给定一个m x n的矩阵,其中的值均为正整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。 说明: m 和 n 都是小于110的整数。每一个单位的高度都大于0 且小于 20000。 示例: 给出如下 3x6 的高度图: [ [1,4,3,1,3,2], [3,2,1,3,2,4], [2,3,3,2,3,1]...原创 2018-09-08 16:08:58 · 1600 阅读 · 0 评论 -
675. 为高尔夫比赛砍树 bfs
你被请来给一个要举办高尔夫比赛的树林砍树. 树林由一个非负的二维数组表示, 在这个数组中: 0 表示障碍,无法触碰到. 1 表示可以行走的地面. 比1大的数 表示一颗允许走过的树的高度. 你被要求按照树的高度从低向高砍掉所有的树,每砍过一颗树,树的高度变为1。 你将从(0,0)点开始工作,你应该返回你砍完所有树需要走的最小步数。 如果你无法砍完所有的树,返回 -...原创 2018-09-08 03:50:17 · 484 阅读 · 0 评论 -
leetcode 864. 获取所有钥匙的最短路径 BFS+位运算
给定一个二维网格 grid。 “.” 代表一个空房间, “#” 代表一堵墙, “@” 是起点,(”a”, “b”, …)代表钥匙,(”A”, “B”, …)代表锁。 我们从起点开始出发,一次移动是指向四个基本方向之一行走一个单位空间。我们不能在网格外面行走,也无法穿过一堵墙。如果途经一个钥匙,我们就把它捡起来。除非我们手里有对应的钥匙,否则无法通过锁。 假设 K 为钥匙/锁的个数...原创 2018-09-08 01:22:12 · 908 阅读 · 0 评论 -
leetcode 773. 滑动谜题 BFS
在一个 2 x 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示. 一次移动定义为选择 0 与一个相邻的数字(上下左右)进行交换. 最终当板 board 的结果是 [[1,2,3],[4,5,0]] 谜板被解开。 给出一个谜板的初始状态,返回最少可以通过多少次移动解开谜板,如果不能解开谜板,则返回 -1 。 思路:...一...原创 2018-09-07 21:39:09 · 1761 阅读 · 0 评论 -
leetcode 127. 单词接龙 BFS
给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则: 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。 说明: 如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。...原创 2018-09-07 14:15:11 · 894 阅读 · 0 评论