给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: 解法一: 这道题是典型的深度优先遍历 DFS 的应用,原二维数组就像是一个迷宫,可以上下左 ...
分类:
其他好文 时间:
2020-02-24 13:14:07
阅读次数:
70
题目 翻转一棵二叉树。 示例: 输入: 输出: 本题同 "【剑指Offer】面试题27. 二叉树的镜像" 思路一:递归 代码 时间复杂度:O(n) 空间复杂度:O(n) 思路二:迭代 类似深度优先。 代码 时间复杂度:O(n) 空间复杂度:O(n) ...
分类:
其他好文 时间:
2020-02-24 00:38:20
阅读次数:
56
tensorflow计算图 计算图是对有向图的表示,主要包含点和边;tensorflow使用计算图计算,计算图的点对应于ops,variables,constant,placeholder等,边对应于Tensors。因此tensorflow主要包含两个部分:构建计算图和runtime运行计算图。 为 ...
分类:
其他好文 时间:
2020-02-21 16:27:38
阅读次数:
87
概念: 割点:在一个无相连通图中,如果删除某个顶点后,图不再连接(即任意两点之间不再相互到达),我们称这样的顶点为割点(或者称为割顶)。 思考: 很容易想到的方法是:以此删除每个顶点,然后用深度优先搜索或者广度优先搜索来检查图是否依然连通。如果删除某个顶点后,,导致图不再联通,那么刚才删除的顶点就是 ...
分类:
其他好文 时间:
2020-02-20 19:59:09
阅读次数:
109
深度优先搜索的定义 即深度优先是在遍历节点时,以深度为优先,先将一条路遍历完,之后再去遍历别的路。 深度优先的代码框架: 1 /*深度优先*/ 2 3 bool Dfs(V){ 4 if(V为终点) 5 return true; 6 if(v为旧点) 7 return false; 8 将v标记为旧 ...
分类:
其他好文 时间:
2020-02-18 18:44:30
阅读次数:
112
题目大意:规定 i 为入栈,o 为出栈,现在给两个字符串st1,st2,现在要将st1转化为st2,转化方法是,st1中字符从头开始入栈,并合理出栈构造出st2。请输出所有可能的出入栈步骤。 深度优先搜索+回溯~ #include<bits/stdc++.h> using namespace std ...
分类:
其他好文 时间:
2020-02-15 11:47:10
阅读次数:
53
1、Python的类可以继承多个类,Java和C#中则只能继承一个类 2、Python的类如果继承了多个类,那么其寻找方法的方式有两种,分别是:深度优先和广度优先 当类是经典类时,多继承情况下,会按照深度优先方式查找 当类是新式类时,多继承情况下,会按照广度优先方式查找 经典类和新式类,从字面上可以 ...
分类:
编程语言 时间:
2020-02-12 18:55:15
阅读次数:
95
N皇后问题是非常经典的一道问题,解题的方法也有很多,非常经典包括暴力回溯法。 DFS就是深度优先搜索的首字母,简单理解就是把所有可能是答案的结果都尝试一遍,用走迷宫来举例子的话就是一条路走到黑,如果走到死路了,再退回上一个分岔口选择另一条路继续一条路走到黑。 属于入门时非常常用的暴力算法,考察的知识 ...
分类:
编程语言 时间:
2020-02-12 16:26:00
阅读次数:
107
一、题目说明 题目是46. Permutations,给一组各不相同的数,求其所有的排列组合。难度是Medium 二、我的解答 这个题目,前面遇到过类似的。回溯法(树的深度优先算法),或者根据如下求解: "刷题31. Next Permutation" 我考虑可以用dp做,写了一个上午,理论我就不说 ...
分类:
其他好文 时间:
2020-02-12 10:40:54
阅读次数:
88
此篇文章为实现《算法》一书中提到的大部分无向图算法,分为多篇, 即多个Java文件,可以直接复制,便于学习; 第三篇,java无向图的类实现,此篇主要列出实现的方法,需要参考其他类中方法(后续实现); 参考链接:https://www.cnblogs.com/xiaohuiduan/p/113522 ...
分类:
其他好文 时间:
2020-02-11 11:32:41
阅读次数:
69