- 博客(6)
- 收藏
- 关注
原创 动态规划类题目的解决之道
首先明确无法用动态规划的情况有哪些?第一种,无法提前知道拓扑排序,也就是无法知道填充顺序。第二种,没有重复计算,dependencygraph里node的入度都是1,没必要用dp。第三种,依赖关系构成环。知道拓扑关系,就知道填充数组或者矩阵的顺序是什么样的,到底是从上到下还是从右向左还是斜着对角线。动态规划的解决步骤:definition: dp[i] 表示是f(i) 是多少 => 存的是v...
2018-05-15 23:20:05 165
原创 深度解读DFS深度优先搜索
首先我们来看DFS问题的四个母题,所有的DFS问题都会由这四个母题演变过来的,DFS的特点是遍历所有的解或者路径,在做题之前,首先确定树的形状,总共多少层,每个节点有多少个分支,根据树的形状可以确定该算法的时间复杂度。问题一:求一个字符串的所有子串Given a set of characters represented by aString, return a list containing a...
2018-05-15 23:13:06 433
原创 常见的排序算法分析
1. 常见的排序方法和时间复杂度。首先明确下,什么是稳定排序,队列中存在两个相等的数字排序过程中,这两个数字的先后顺序如果不会发生变化,就叫做稳定排序,否则不稳定。几种排序的情况排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性冒泡排序 O(n^2) O(n) O(n^2) O(1) ...
2018-05-15 23:12:00 124
原创 从word ladder题目看DFS和BFS(下)
同理,我们来看下wordladder II,这个题难度更大,先来看看题目描述,Given two words (beginWord and endWord),and a dictionary's word list, find all shortest transformation sequence(s) frombeginWord to endWord, such that: Only one ...
2018-05-15 00:39:57 352
原创 从word ladder题目看DFS和BFS(上)
最近在刷题并整理DFS和BFS的思路,有两道题引起了我的注意,就是leetcode上的126和127两个word ladder题目。首先我们先来关注下这两道题的描述,127题只需要记录单词转换的最短路径长度就好,而126题需要记录所有最短转换路径。127题属于中等难度的题目,但是126题属于hard难度的题目。127题描述:Given two words (beginWord and endWor...
2018-05-15 00:23:09 703
原创 迷宫的最短路径问题,分别用DFS和BFS做
迷宫的最短路径一般来说用BFS做,但是也可以用DFS做,如果最优路径只有一条的话,穷尽所有的路径然后找出路径最短的就好了。不废话,先上BFS代码,这个代码中,用到了每一个位置的前驱节点,需要记住。然后逆着路径打印出来。#include<iostream>#include<vector>#include<queue>using namespace std;type...
2018-05-13 23:58:06 9029 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人