class Solution { public int countPairs(TreeNode root, int distance) { dfs(root,0,distance); return res; } private int res = 0; public List<Integer> df ...
分类:
其他好文 时间:
2020-07-27 13:50:30
阅读次数:
114
多源bfs 1.算法分析 多源bfs就是一开始有很多的源头,不只一个源点。处理的方法:一开始直接把所有源点放入队列;或者建立一个虚拟源点,虚拟源点到每个源点的距离为0 2.例题 acwing173矩阵距离 给定一个N行M列的01矩阵A,A[i][j] 与 A[k][l] 之间的曼哈顿距离定义为: d ...
分类:
其他好文 时间:
2020-07-27 13:41:08
阅读次数:
59
双端队列广搜 1. 算法分析 双端队列广搜算法只适用于边权只有0和1的情况,本质上是对dijkstra堆优化版本的再次优化。由于dijkstra堆优化版本每次要把最小值从队头拿出,然后更新其他值后插入队列。而当边权只有0和1时,当处理的边权为0,那么更新完仍然为最小值,直接放入队头;为1则插入队尾。 ...
分类:
其他好文 时间:
2020-07-27 13:40:39
阅读次数:
68
双向bfs和双向dfs 1. 算法分析 当进行的变换是可逆的时候,且规定步数的上限时,可以使用双向dfs或双向bfs从源点和终点一起搜索。这样可以把时间从O(n)->O(n/2) 如果dfs调栈超过1e5时,那么考虑双向bfs 写法技巧 双向dfs 第一个dfs先搜索前一半的空间,打表存储所有可达的 ...
分类:
其他好文 时间:
2020-07-27 13:39:54
阅读次数:
66
bfs最短路与最小步数模型 1. 算法分析 最短路:从A点走到B点的最小距离 最小步数:从状态A到状态B的最小变化数,本质就是最短路 2. 例题 2.1 最短路 acwing1076迷宫问题 给定N*N数组,每个元素只有0和1,求从(0, 0)走到(n - 1, n - 1)的最短路,输出其路径 # ...
分类:
其他好文 时间:
2020-07-27 13:39:28
阅读次数:
64
dfs连通性模型 1. 算法分析 使用dfs来判断是否两个点连通,也可以通过dfs来做计数 2. 例题 acwing1112迷宫 T个测试样例,每个测试样例输入一个N,表示网格大小。网格为N*N的二维网格,给定起点和终点,问起点能否到达终点 #include <bits/stdc++.h> usin ...
分类:
其他好文 时间:
2020-07-27 13:38:39
阅读次数:
73
floodfill 1.算法分析 floodfill就是求出连通块的算法,一般可以采用dfs或者bfs,但是dfs容易爆栈,故而采用bfs为佳 2. 例题 acwing1097池塘计数 一块N * M的土地,其中有'W'和'.'组成,'.'为土地,'W'为水,水的八个方向可以连在一起形成池塘,问一块 ...
分类:
其他好文 时间:
2020-07-27 13:37:49
阅读次数:
56
Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。RDB持久化RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。手动触发数据持久化手动触发分别对应save和bgsave:save指令:阻塞当前redis服务器,直到RDB过程完成为止(线上不建议使用,阻塞时间
分类:
其他好文 时间:
2020-07-27 10:01:33
阅读次数:
97
import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class hdu1518DFS{ private static boolean [] vis; private static ...
分类:
其他好文 时间:
2020-07-26 19:26:13
阅读次数:
69
题目描述 https://leetcode-cn.com/problems/subtree-of-another-tree/ 题解 我写的 两层DFS、双重DFS 其它题解一般也是这个思路 // Problem: LeetCode 572 // URL: https://leetcode-cn.co ...
分类:
其他好文 时间:
2020-07-26 19:01:52
阅读次数:
62