摘要: 一、Prim算法 概论 适合稠密图,不进行堆优化的时间复杂度是\(O(n^2)\),进行堆优化则是\(O(mlogn)\) 每次将离连通部分的最近的点和点对应的边加入的连通部分,连通部分逐渐扩大,最后将整个图连通起来,并且边长之和最小,基于一种贪心的策略。 证明的引理 对于任意切割 (S, V-S) 阅读全文
posted @ 2024-04-08 21:03 gebeng 阅读(60) 评论(0) 推荐(0)
摘要: 最短路算法 一、Dijkstra 简介 用于计算一个节点到其他节点的最短路径。 它的主要特点是以起始点为中心向外层层扩展(广度优先遍历与贪心思想,如果权重为1的话就是BFS寻找最短路了),直到扩展到终点为止。 按长度递增的次序产生最短路径 适用于正权图,可以有环,不可以有负权边 代码 from he 阅读全文
posted @ 2024-04-08 17:06 gebeng 阅读(84) 评论(0) 推荐(0)
摘要: 定义 二叉排序树是一种特殊的二叉树,其中左子树中的所有节点都小于根节点,右子树中的所有节点都大于根节点(如下图所示)。 因此构造过程需要确保插入的元素能够按照这个规则被正确地插入到树中 性质 1、如果初始状态是一个空树,则插入每个元素的时间复杂度是 O(log n),其中 n 是树中节点的数量。这是 阅读全文
posted @ 2024-04-08 09:04 gebeng 阅读(58) 评论(0) 推荐(0)
摘要: 问题一:求 A 中由 K 个不同整数组成的最长子数组的长度 right pointer 主动向前移动 left pointer 被动向前移动,为了保证[left,right]闭区间的合法性 from collections import Counter def find(s,k): n = len( 阅读全文
posted @ 2024-04-08 07:08 gebeng 阅读(20) 评论(0) 推荐(0)