复习
而鱼儿and-fish
这个作者很懒,什么都没留下…
展开
-
python算法----背包九讲
# 背包九讲1def Hello(): print("01背包问题\n完全背包问题\n多重背包问题\n多重背包问题(二进制优化)\n多重背包问题(单调队列优化)\n混合背包问题\n二维背包问题\n分组背包问题")Hello()''' 01背包问题: 有N件物品,一个容量为V的背包,第i件物品的价值为value[i-1],重量为weight[i-1]; 在体积不超过背包容量的情况下,返回价值最高的方法; 每种物体只有一件,可以选择放还.原创 2022-05-28 02:29:08 · 1424 阅读 · 0 评论 -
python算法复习(八)----树形dp、位运算
# 本章的内容是树形dp,非常重要,熟练掌握后可以解决大部分二叉树问题。# 以及大数据问题的补充点,以及之前学习过程中没有完成的二进制运算(感谢Golang)class TreeNode(object): def __init__(self, value): self.value = value self.left = None self.right = None def __repr__(self): return s.原创 2022-05-07 18:22:34 · 576 阅读 · 0 评论 -
python算法复习(七)----KMP、Manacher、滑动窗口和单调栈
感觉标题越来越长了haha# 本章的内容是KMP算法、Manacher算法、滑动窗口、单调栈# 本章的几个都是方法类的,熟练掌握很重要# 字符串str1和str2,str1中是否包含str2,如果包含返回str2在str1开始的位置.# 常规方法: 双指针,一个指向str1[0],一个指向str2[0],# 如果两个指针指向的value相同,两个指针都+1,# 如果不相同,str1指针+1,str2回到0位置# 即以str1每一个原创 2022-05-02 21:45:33 · 967 阅读 · 0 评论 -
python算法复习(六)----有序表(详解 AVL树和跳表 )和并查集
# 本章的内容是有序表和并查集,# 在学习哈希表的时候我们提到过哈希表的构成可以使用单链表,那么我们能不能使用更高效、更多功能的方式完成呢# 在图的最小生成树的kruskal算法中就简单接触到了并查集的简单功能,这次会完整的实现整个结构# 岛问题(引出并查集结构)# 一个矩阵中只有0和1两种值,每个位置都可以和自己的上下左右四个位置相连,如果有一片1连在一起,这个部分叫做一个岛,求一个矩阵中有多少个岛# 解题思路:从左上开始遍历整个矩阵,当遇到1的时候,看看它的上下左右是不是也是1,如果是1.原创 2022-05-01 21:55:54 · 284 阅读 · 0 评论 -
python算法复习(五)----哈希函数及大数据问题
'''本章简单讲讲哈希函数的实现,和大数据问题的处理方法认识哈希函数 1.输入域是无穷的,输出域是有限的. 2.相同的输入会返回相同的输出 3.不同的输入可能会返回相同的输出(哈希碰撞,因为输入域是无穷的,输出是有限的) 4.输出是均匀的、离散的 (假设输出域是一个大圆圈,里面有n个输出,那么在这个圆圈中任意位置的同大小范围内的输出个数是几乎相同的) 换句话说,即使输入的值相似度很高,它们的输出差异性也会很大那么通过哈希函数的性质,我们可以进一步发.原创 2022-04-21 16:58:23 · 2176 阅读 · 0 评论 -
python算法复习(四)----贪心算法和暴力递归
# 接下来就是算法基础内容中最重要的贪心算法和暴力递归了## 那么什么是贪心算法呢?# 在某一标准下,优先考虑最满足标准的样本,最后考虑最不满足标准的样本,最终得到一个答案的算法,叫做贪心算法。# 也就是说,不从整体最优上加以考虑,所作出的是某种意义上的局部最优解# 先拿一个经典的会议安排问题开头吧# 一些项目要占用一个会议室宣讲,会议室不能同时容纳两个项目的宣讲。[开始时间,结束时间]# 给你每一个项目开始的时间和结束的时间,你来安排宣讲的日程,要求会议室进行的宣讲场次最多,返回宣讲场.原创 2022-04-20 15:06:12 · 851 阅读 · 0 评论 -
python算法复习(三)----图和前缀树
# 本章重点讲的是图结构,顺带一点前缀树的内容,这两个结构题目的解答比较偏向于套路解答# 前缀树节点结构:class TrieNode(object): def __init__(self): self.transfer = 0 # 这个字符的经过次数 self.end = 0 # 这个字符是多少个次的结尾 self.nexts = [None] * 26 # 有通往"a""b""c"...的路吗# 图的存储方式:# 1.邻.原创 2022-04-18 22:05:39 · 651 阅读 · 0 评论 -
python算法复习(二)----链表和二叉树
# 本节讲的内容是链表和双链表结构,以及和链表相似度很高的二叉树结构import sysclass LinkNode(object): def __init__(self, value=None): self.value = value self.next = None def __repr__(self): return str(self.value)class DoubleLinkNode(object): def.原创 2022-04-16 15:05:28 · 695 阅读 · 0 评论 -
python算法复习(一)----排序算法
从头复习一遍算法,顺便整理一下笔记。# 选择排序# 时间复杂度 O(n^2)# 每一趟在n-i+1个记录中选择关键字最小的记录作为序列中的第i个记录。import randomdef select_sort(arr): if arr == [] or len(arr) < 2: return arr for i in range(len(arr)): minimumindex = i for j in range(i +原创 2022-04-12 21:38:28 · 706 阅读 · 0 评论