刷题整理
文章平均质量分 79
leetcode相关
serenysdfg
菜鸟在成长
展开
-
图算法分类简介
最小生成树能够保证整个拓扑图的所有路径之和最小,但不能保证任意两点之间是最短路径。 (路总长最小连接所有点)最短路径是从一点出发,到达目的地的路径最小 (一点到达零一点)最小生成树-prim和krustal给定一个n个点m条边的无向图,求最小生成树的树边权重之和目标如何找到一条路径使得沿此路径上各边上的权值总和达到最小(路径规划)http://www.cppblog.com/abilitytao/archive/2009/09/05/95399.html例子:684. 冗余连接(le.原创 2020-07-05 00:52:52 · 1013 阅读 · 0 评论 -
二叉树遍历
递归先序遍历--根左右def preOrder(root): if not root: return None print(root.val) preOrder(root.left) preOrder(root.right)中序遍历-左根右def inOrder(root): if not root: re...原创 2020-04-03 23:20:47 · 102 阅读 · 0 评论 -
排序算法总结
时间空间复杂度1直接选择排序 def select_sort(lst): if lst == []: return [] for i in range(len(lst)-1): smallest = i for j in range(i, len(lst...原创 2020-03-03 23:59:15 · 223 阅读 · 1 评论 -
leetcode数组类整理
1.1数组类总和值为零的连续节点:常用:前缀和思想(重要preSum[i]=1+2=3,而preSum[j]=1+2+3+4=10,那么sum([i+1,j])=preSum[j]-preSum[i]=7。这是一个非常好的性质,我们可以通过一个字典存储每个前缀和对应的节点,如果有两个节点的前缀和相同,那么说明这个区间内的和是0其他二维数组定义 dp = [[1 for i ...原创 2020-03-02 22:26:59 · 110 阅读 · 0 评论 -
leetcode常用数据处理
字符串处理x = ''.join(sorted(list(i)))#转换相同的i.lower() for i in astring.count('a') #返回str在string里面出现的次数''.join(s)s=list(s) #数组和list转换变成list、 s[end], s[start] = s[start],s[end]#互换#排序sorted(logs,...原创 2020-02-29 23:09:19 · 204 阅读 · 0 评论 -
kmp算法
朴素算法朴素算法中,P的第j位失配,默认的把P串后移一位 char s[]={' ','a','b','c','a','b','a','a','a','a','b','a','a','b','c','a','c'};//从序号1开始存 char p[]={' ','a','b','a','a','b','c','a','c'}; int i = 1,j = 1;...原创 2020-03-02 19:50:18 · 138 阅读 · 0 评论 -
最短路径算法 : Dijkstra 和Floyd
思想:Dijkstra是求单源最短路径,Floyd算法是用于求多源最短路径,算出来的是所有的节点到其余各节点之间的最短距离。Dijkstra算法先遍历一下还没有在最短路中的点,选出一个距离 已经在最短路集合中的点 距离最近的点(遍历与 最短路包含的点 相连的节点),并把它加入到最短路中,并且更新所有点的最短路,直到所有的点都加入到最短路中。图解参考:https://www....原创 2020-03-02 19:05:11 · 225 阅读 · 0 评论