![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
GoldMinnie
这个作者很懒,什么都没留下…
展开
-
差分约束SPFA
Bellman-Ford 算法和 Dijkstra 算法同为解决单源最短路径的算法Bellman-Ford 算法采用DP思想,时间复杂度为 O(V*E),Dijkstra 算法采用贪心策略,普通实现的时间复杂度为 O(V2)其中 V 为顶点数量,E 为边的数量。Dijkstra有一个特点:一旦一个顶点添加到S中后,其最短路径长度不再改变,所以不适合含有非负权值的带权图求单源最短路径对于带权有向图 G = (V, E),Dijkstra 算法要求图 G 中边的权值均为非负,而 Bellman-Ford原创 2022-02-14 22:59:42 · 496 阅读 · 0 评论 -
洛谷 暴力枚举 python
烤鸡n=int(input())flag=0k=[]for a in range(3): for b in range(3): for c in range(3): for d in range(3): for e in range(3): for f in range(3): for g in range(3):原创 2022-02-13 12:43:41 · 720 阅读 · 0 评论 -
Longest Substring Without Repeating Character
def Solution(s): start=-1 max=0 dir={} for i in range(len(s)): if s[i] in d and d[s[i]]>start: start=d[s[i]] d[s[i]]=i else: d[s[i]]=i if i-start>max: max=i-start return max原创 2022-02-11 22:25:51 · 168 阅读 · 0 评论 -
求解线性规划模型之单纯形代码
将一般线性规划模型转化为标准型后,便可使用单纯形算法求解。Scipy的优化器模块optimize可以用来求取不同函数在多个约束条件下的最优化问题最优解判别定理若目标函数中关于非基本变量的所有系数(检验数)小于或等于0,则当前基本可行解就是最优解单纯形算法解约束标准型线性规划问题的步骤如下:1.找出基本变量和非基本变量,将目标函数由非基本变量表示,建立初始单纯形表。2.判别目标函数的所有系数,即检验数。如果所有的系数都≤0,则获得最优解,算法结束3.选入基变量4.选离基变量5.换基变换基原创 2022-02-10 22:00:32 · 363 阅读 · 0 评论 -
Simplify Path
def simplifyPath(self,path:str)->str: result=[] path_list=path.split('/') for p in path_list: if p: if p=='..'" if result: result.pop() elif p=='.': continue else: result.append(p) res='/'+'/'.join(result) return res原创 2022-02-09 23:14:05 · 191 阅读 · 0 评论 -
python求导
scipy在numpy的基础上增加了大量用于数学计算、科学计算以及工程计算的模块,包括线性代数、常微分方程求解、信号处理、图像处理、稀疏矩阵等。原创 2022-02-04 20:50:02 · 1462 阅读 · 0 评论 -
python常用内置函数
内置函数bin()、oct()、hex()用来将整数转换为二进制、八进制和十六进制形式,这三个函数都要求参数必须为整数。remove() 方法在移除一个不存在的元素时会发生错误原创 2022-02-03 22:33:29 · 8084 阅读 · 2 评论 -
Python小数整数输出
f = 1.6#小数部分舍弃print("1.6直接整型输出是 %d"%f,end="\n")#四舍五入print("1.6利用浮点数的精度范围输出%.0f"%f)原创 2022-02-01 21:05:26 · 8025 阅读 · 0 评论 -
dummy node链表
在单链表中增加一个头结点的优点如下:(1)单链表中首结点的插入和删除操作与其他结点一致,无须进行特殊处理(2)无论单链表是否为空都有一个头结点,因此统一了空表和非空表的处理过程...原创 2022-01-22 05:00:00 · 361 阅读 · 0 评论 -
python使用指定分隔符将列表中所有字符串元素连接成一个字符串
def join(List,sep=None): return (sep or ' ' ).join(List)aList=['a','b','c']Join(aList)>>>'a b c'Join(aList,',')>>>'a,b,c'原创 2022-01-20 05:00:00 · 2145 阅读 · 0 评论 -
python函数参数和返回值
python 允许对函数参数和返回值类型进行标注,但实际上并不起任何作用,只是看起来方便。def test(x:int,y:int)->int: ''' x and y must be integers,return an integer x+y''' assert isinstance(x,int),'x must be integer' assert isinstance(y,int),'y must be integer' z=x+y assert i原创 2022-01-19 05:00:00 · 1050 阅读 · 0 评论 -
用stack解决迷宫问题
maze=[ [1,1,1,1,1], [1,0,0,1,1], [1,0,1,1,1], [1,0,0,1,1], [1,1,0,0,1], [1,1,1,0,1]]dirs=[ lambda x,y:(x+1,y), lambda x,y:(x-1,y), lambda x,y:(x,y-1), lambda x,y:(x,y+1)]def maze_path(x1,y1,x2,y2): stack=[ ]原创 2022-01-17 15:49:31 · 454 阅读 · 0 评论 -
leetcode python
替换所有的问号class Solution: def modifyString(self, s: str) -> str: res = list(s) for i in range(len(res)): if res[i] == '?': ##前后两个字母 最多遍历三个字母即可 for b in "abc": if not (i > 0原创 2022-01-05 13:34:21 · 375 阅读 · 0 评论 -
洛谷动态规划python-最长公共子序列
动态规划算法通常用于求解具有某种最优性质的问题,在这类问题中,可能会有许多可行解。其思想实质是分治思想和解决冗余。适合动态规划法求解的问题,经分解得到的各个子问题往往不是相互独立的。在求解过程中,将已解决的子问题的解进行保存,在需要的时候可以轻松找出。这样就避免了大量无意义的重复计算。基本要素:1.最优子结构性质2.子问题重叠性质3.自底向上的求解方法...原创 2022-01-02 23:47:01 · 877 阅读 · 0 评论 -
回溯法-子集树排序树满m叉树
回溯法是在仅给出初始节点、目标节点及产生子节点的条件的情况下,构造出一个图,然后按照深度优先搜索的思想,在有关条件的约束下扩展到目标节点,从而找到问题的解。子集树当所给的问题是从n个元素组成的集合S中找出满足某个性质的一个子集时,相应的解空间树称为子集树。排列树当所给的问题是从n个元素的排列中找出满足某种性质的一个排列时,相应的解空间称为排列树。满m叉树当所给问题的n个元素中每一个元素均有m种选择,要求确定其中的一种选择,使得对这n个元素的选择结果组成的向量满足某种性质,即寻找满足某种热性的n个原创 2021-04-22 08:47:11 · 1447 阅读 · 0 评论 -
python_prim最小生成树算法
假设要在n个城市之间建立通信网络,则连通n个城市至少需要n-1条线路。n个城市之间,最多可能设置n(n-1)/2条线路。如何在这些可能的线路中选择n-1条,以便在最节省费用的前提下建立该通信网络?...原创 2021-08-24 19:43:56 · 644 阅读 · 0 评论 -
python-排序算法
排序算法选择排序快速排序快速排序是一种划分交换排序,其基本思想是通过一趟扫描将待排序的元素分割成独立的三个序列:第一个序列中所有元素均不大于基准元素、第二个序列是基准元素、第三个序列中所有元素均大于基准元素。def partition(lis,left,right):#lis->待排序元素 left->起始索引 right->结束索引 i=left j=right+1 pivot=lis[left] #用序列的第一个元素作为基准元素 while(True): i+=1原创 2021-08-15 09:58:04 · 569 阅读 · 0 评论