bfs
shoushudao111
这个作者很懒,什么都没留下…
展开
-
迷宫求解-最短路径打印
bfs想必非常的熟悉了,bfs大多数用来解决什么问题呢?一个最直观经典的例子就是走迷宫,我们从起点开始,找出到终点的最短路程,很多最短路径算法就是基于广度优先的思想成立的。所以这篇博客,主要是利用bfs找迷宫的最短距离。首先看看bfs一般的使用套路。 import java.util.*;public class MigongqiujieBFS { public stat...原创 2018-10-23 14:34:37 · 401 阅读 · 0 评论 -
清华大学研究生机试题目-玛雅人的密码
题目描述玛雅人有一种密码,如果字符串中出现连续的2012四个数字就能解开密码。给一个长度为N的字符串,(2=<N<=13)该字符串中只含有0,1,2三种数字,问这个字符串要移位几次才能解开密码,每次只能移动相邻的两个数字。例如02120经过一次移位,可以得到20120,01220,02210,02102,其中20120符合要求,因此输出为1.如果无论移位多少次都解不开密码,输出-1...原创 2018-10-27 08:50:29 · 164 阅读 · 0 评论 -
787. Cheapest Flights Within K Stops . (bfs)
787. Cheapest Flights Within K Stops广度优先搜索,第一种解法超时:class Solution { public int findCheapestPrice(int n, int[][] flights, int src, int dst, int K) { int f[][]=new int[n][n]; ...原创 2018-12-17 16:52:43 · 201 阅读 · 0 评论 -
785. Is Graph Bipartite?
785. Is Graph Bipartite?思路:我们要求将点分为两部分,并且每一部分之间的点互不相连,首先对于一个点来说与其相邻的都标记为不同颜色,这样广度或者深度遍历下去,如果在标记的过程中发现一个点需要被标记为两个颜色或者与其相邻的点的颜色相同,则说明输入不可以被分成两个点集。难点:没有想到什么时候可以判断无法分成两个互不相连的点集合,只想着从正面的怎么做可以分为两部分入手了,应...原创 2018-12-17 18:15:46 · 143 阅读 · 0 评论 -
417. Pacific Atlantic Water Flow
417. Pacific Atlantic Water Flow第一点:读懂题目,题目要求求出可以流向两个大洋的点;第二点:分解问题:先求出可以流向p洋的,在求出可以流向a洋的,取交集。解法一:dfs,dfs递归代码简洁易懂class Solution { public int change[][]=new int[][]{{1,0},{0,1},{-1,0},{0,-1...原创 2018-12-17 20:02:15 · 129 阅读 · 0 评论