09 2024 档案
摘要:数组 一般是排序 以及 索引问题 左右指针问题: 一般是二分法相关,或者交换首尾元素 快慢指针问题: 844 退格字符串 滑动窗口问题: 76 最小覆盖字串 模拟过程问题: 螺旋矩阵 两种解法,一种统一四条边逻辑(但是要单独处理最后一圈,或者一条边),另一种不统一逻辑,方便直接一次循环搞定,考虑了所
阅读全文
摘要:一、连通所有的节点所需的最短路径问题 1.1、Prim 算法 应用场景是主要是找到一个无向连通图的最小生成树,即连接所有节点且权重总和最小的树 // prim三部曲 // 1, 找到距离当前最小树最近节点 // 2,节点入树 // 3,更新mindist // 更新树 func updateMinD
阅读全文
摘要:并查集 197 图中是否存在有效路径 var father []int func validPath(n int, edges [][]int, source int, destination int) bool { // 使用并查集算法,涉及到的操作,包括init,find, issample,j
阅读全文
摘要:字符串接龙 var queue *list.List var visitMap map[string]bool func main() { var count int fmt.Scanf("%d", &count) var startStr, endStr string fmt.Scanf("%s
阅读全文
摘要:岛屿最大的孤岛面积 package main import "fmt" var dirPath = [4][2]int{{0, -1}, {1, 0}, {0, 1}, {-1, 0}} var visited [][]bool var flag bool var res int func main
阅读全文
摘要:图遍历 dfs 深度优先搜索 bfs 广度优先搜索 200 岛屿数量(dfs) var dirPath = [][]int{{0, -1}, {1, 0}, {0, 1}, {-1, 0}} // 上, 右, 下, 左 var visited [][]bool func numIslands(gri
阅读全文
摘要:图论 基础定义 图的构造方式 1,邻接矩阵 矩阵位置array[i][j] = k, i表示节点i,j表示节点j,[i][j] 表示i-->j存在一条边,k表示的是边的权重 邻接矩阵的优点: 表达方式简单,易于理解 检查任意两个顶点间是否存在边的操作非常快 适合稠密图,在边数接近顶点数平方的图中,邻
阅读全文
摘要:42、接雨水 func trap(height []int) int { // 双指针思路,按照列计算雨水高度,分别计算每一列左右高于当前高度的最高柱子高度,然后通过min(left, right) - height[i] 得出当前列的雨水体积 var res int var left, right
阅读全文
摘要:739 每日温度 func dailyTemperatures(temperatures []int) []int { // 双指针 var res = make([]int, len(temperatures)) for i:=0; i<len(temperatures); i++ { for j
阅读全文