"leetcode 854" 问题描述 给定两个等长字符串A和B,它们所含的字符个数及种类完全一样,问最少需要对A执行多少次交换字符才能使得A变成B? 分析 因为这个问题数据规模很小,只包含6种字符、A和B的长度都不超过20,所以暴力+适当剪枝的思路就能够通过。 首先对于A[i]==B[i]的部分, ...
分类:
其他好文 时间:
2018-10-11 01:52:16
阅读次数:
337
一、狄杰斯特拉算法介绍 迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。 基本思想 通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。 此外 ...
分类:
编程语言 时间:
2018-10-11 01:48:42
阅读次数:
164
一.DFS(深度优先搜索) 过于水略过。 二.BFS(广度优先搜索) 同上。 三.记忆化 记忆化搜索,就是我们的状态会重复利用,为了防止状态的重复计算耗费不必要的时间,我们可以把这个状态的结果记录下来,然后查询表中的结果就行了。 一般来所,记忆化搜索是和DP等价的。如果递推的DP不好写,可以考虑用记 ...
分类:
其他好文 时间:
2018-10-10 20:15:40
阅读次数:
166
//深度遍历 private void depthQuery(Node root){ Stack stack = new Stack(); stack.push(root); while (stack.empty() ==false){ Node node ... ...
分类:
其他好文 时间:
2018-10-10 19:20:56
阅读次数:
182
本题是广度优先遍历(BFS)实现树的层次遍历,使用队列实现。 ...
分类:
其他好文 时间:
2018-10-04 09:34:52
阅读次数:
154
图->定义 图->存储结构->数组表示法 图->存储结构->邻接表 图->存储结构->十字链表 图->存储结构->邻接多重表 图->遍历->深度优先搜索 图->遍历->广度优先搜索 图->连通性 图->有向无环图及其应用->拓扑排序 图->有向无环图及其应用->关键路径 图->最短路径->单源最短路 ...
分类:
其他好文 时间:
2018-10-02 20:35:55
阅读次数:
187
【题目描述】 在各种棋中,棋子的走法总是一定的,如中国象棋中马走“日”。有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按“日”走,也能如象一样走“田”字。他的同桌平时喜欢下围棋,知道这件事后觉得很有趣,就想试一试,在一个(100×100)的围棋盘上任选两点A、B,A点放上黑子, ...
分类:
其他好文 时间:
2018-10-01 10:36:49
阅读次数:
206
题目描述: 一矩形阵(n*m)列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。(细胞数字指1到9) 0234500067 1034560500 2045600671 0000000089 有四个细胞 输入: 第一行输入n和m( ...
分类:
其他好文 时间:
2018-10-01 10:31:33
阅读次数:
280
遍历所有状态最好用dfs,求最短路用bfs,(无权值,都是一); 要注意满足状态与越界状态。(必要时设标志位) dfs <wiz_code_mirror> bool judge(){ int k = 0, p = 0, q = 0; for(int i = 0; i < n; i++){ if(b[ ...
分类:
其他好文 时间:
2018-09-30 23:21:34
阅读次数:
336
一、题目 1、审题 2、分析 给出一棵二叉树,输出其最大深度。 二、解答 1、思路: 方法一、 采用递归方式,输出其最大深度。 方法二、 直接在此方法上递归。 方法三、 采用 BFS 广度优先遍历,用一变量记录深度。 方法四、 利用 DFS 深度优先遍历方法; 采用两个栈,一个栈记录节点,另一个栈记 ...
分类:
其他好文 时间:
2018-09-30 20:42:42
阅读次数:
212