![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
文章平均质量分 63
云端一散仙
主要在做图像,点云方向,欢迎讨论~
展开
-
字符串匹配
因为是由这三位学者发明的:Knuth,Morris和Pratt,所以取了三位学者名字的首字母。所以叫做KMP写过KMP,一定都写过next数组,next数组就是一个前缀表,前缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从哪里开始重新匹配。例子:文本串:aabaabaafa 中查找是否出现过一个模式串:aabaaf可以看出,文本串中第六个字符b和模式串的第六个字符f,不匹配了。如果暴力匹配,会发现不匹配,此时就要从头匹配了。原创 2024-01-04 13:38:45 · 1032 阅读 · 2 评论 -
买苹果c++
可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。输出描述: 输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出-1。输入描述: 输入一个整数n,表示小易想购买n(1 ≤ n ≤ 100)个苹果。个苹果最少需要购买的袋数。原创 2023-06-26 09:50:14 · 157 阅读 · 0 评论 -
匈牙利匹配
理论知识网上有很多,只根据代码解析下:矩阵为:(每一列代表一个男生,每一行代表一个女生,1代表匹配,0代表不匹配)000111000101000100111000100000110000 \begin{matrix} 0 & 0 & 0 & 1 & 1 & 1 \\ 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 1 & 0 & 0 \\原创 2021-08-04 15:33:42 · 185 阅读 · 0 评论 -
单链表寻找环的入口
思路:使用两个快慢指针 slow 和 fast 来做:slow 每次走一步,fast 每次走两步,如果 slow == fast,则说明 slow 和 fast 在环中相遇;将 fast 放回链表头(fast = head),然后 slow 和 fast 每次都走一步,当 slow 和 fast相等时,说明此时 slow 或者 fast 就是链表环的入口节点。第一个比较好理解,第二个可以这么理解:假设头节点到环入口节点的距离为 x,环入口节点到 slow 和 fast 相遇点的距离为 y,原创 2020-10-13 21:32:24 · 503 阅读 · 0 评论 -
背包问题
0-1背包p[i][j]p[i][j]p[i][j]中,iii表示背包中放入第iii个物体,jjj表示当前背包的容量大小p[i][j]=max(p[i−1][j],p[i−1][j−weight[i−1]]+value[i−1])p[i][j]=max(p[i-1][j],p[i-1][j-weight[i-1]]+value[i-1])p[i][j]=max(p[i−1][j],p[i−1][j−weight[i−1]]+value[i−1])表示,放入第iii个物体时,我们需要判断是否需要放入这个原创 2020-08-20 20:19:19 · 120 阅读 · 0 评论 -
LeetCode二叉树--python
1.给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。class Solution: def hasPathSum(self, root: TreeNode, sum: int) -> bool: if not root: return False sum_lst = [root.val] stack = [root] while stack:原创 2020-07-07 22:27:05 · 118 阅读 · 0 评论 -
LeetCode链表--python
1.合并 k 个排序链表,返回合并后的排序链表class Solution: def mergeKLists(self, lists: List[ListNode]) -> ListNode: if not lists: return n = len(lists) return self.merge(lists, 0, n-1) def merge(self,lists, left, right):原创 2020-07-07 17:10:59 · 87 阅读 · 0 评论 -
leetcode列表--python
1.根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。(借用栈)class Solution: def dailyTemperatures(self, T): ans = [0] * len(T) stack = [] for i in range(len(T)): Tem = T[i] while原创 2020-06-11 18:51:30 · 165 阅读 · 0 评论 -
leetcode字符串--python
1.最大回文长度class Solution: def longestPalindrome(self, s: str) -> str: size = len(s) max_len = 1 start = 0 matrix = [[False for _ in range(size)] for _ in range(size)] for i in range(size): matrix[i]原创 2020-06-05 17:31:42 · 173 阅读 · 0 评论