随笔分类 -  数据结构与算法

算法题速查手册
摘要:杂 Boyer-Moore 投票算法 初始化m*n二维数组:dp = [[1]*n for _ in range(m)] 每个key的value都是list的dict:tree = collections.defaultdict(list) dict 计数:mydict[x] = mydict.ge 阅读全文

posted @ 2022-04-24 23:36 HolaWorld 阅读(64) 评论(0) 推荐(0) 编辑

博弈论
摘要:一、巴什博弈 一堆物品有n个,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 __解:__ 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如 n=(m+1)r+s , 阅读全文

posted @ 2020-03-03 00:23 HolaWorld 阅读(340) 评论(0) 推荐(0) 编辑

区间dp
摘要:区间dp:在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的最优解进而得出整个大区间上最优解的dp算法。 (此句抄袭这里:https://blog.csdn.net/qq_40772692/article/details/80183248) 例题:石子合并 【问题描述】 将n(1≤ 阅读全文

posted @ 2020-03-02 23:54 HolaWorld 阅读(126) 评论(0) 推荐(0) 编辑

字典树
摘要:```python class TrieNode: def __init__(self): self.nodes=dict() self.is_leaf=False def insert(self,word):#插入单词(字符列表) curr=self for char in word:#单词中的每个字母 if char not in curr.nodes: curr.nodes[char]=Tr 阅读全文

posted @ 2020-03-01 19:45 HolaWorld 阅读(131) 评论(0) 推荐(0) 编辑

快速排序
摘要:def quicksort(data,left,right): if left>=right: return i=left j=right temp=data[left]#要归位的元素 while i<j: while i<j and data[j]>=temp: j-=1 data[i]=data 阅读全文

posted @ 2020-03-01 19:26 HolaWorld 阅读(108) 评论(0) 推荐(0) 编辑

拓扑排序
摘要:1.图 2.每个节点的入度 3.用于存放入度为0的节点的队列 4.用于存放拓扑排序的结果的列表 1. 先将入度为0的节点都放入队列: 2. 像上面的图那样,每处理完一个节点,将剩下的与它有关的节点的入度减1,若为0则放入队列: 参考:https://blog.csdn.net/qq_41713256 阅读全文

posted @ 2020-03-01 11:59 HolaWorld 阅读(134) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示