算法刷题
文章平均质量分 90
Kepler_zc
这个作者很懒,什么都没留下…
展开
-
两个示例弄懂KMP(Java)
两个示例弄懂KMP(Java)KMP简介KMP适用的问题:字符串匹配问题KMP核心操作:为模式串构建next数组,简化比较步骤,跳过绝不可能成功的字符串比较。构建next数组的核心思想:对模式串中的第i个字符,其前缀j个字符组成的子串与后缀j个字符组成的子串相等。也即对模式串p,有:p[1~j] = p[i-j+1~i](索引从1开始)详细的KMP解析和思考见:https://www.zhihu.com/question/21923021/answer/1032665486示例一:实现str原创 2021-04-20 19:43:34 · 121 阅读 · 0 评论 -
四个示例搞懂并查集(Java)
四个示例搞懂并查集(Java)并查集简介并查集适用的问题:元素分组问题并查集操作:合并(Merge),一般用于把两个集合合并,集合用一个树状结构表示,最终汇集到一个根节点;查询(Find),查询两个节点是否具有相同的根节点。并查集的两个优化操作:路径压缩:在查询的同时,通过parent[i] = find(parent[i]);进行路径压缩,避免了树结构的重复遍历,直接将节点的父节点化为根节点,提高查询效率。秩优化:合并过程中为了使树尽可能平衡,引入秩数组减小根节点左右子树高度差。在开原创 2021-04-20 14:11:42 · 212 阅读 · 0 评论 -
闫氏DP分析法
闫氏DP分析法以下为总结y总直播的内容,视频原址。思维是视频中的思维,代码是自己用Java写的。y总yyds!核心:从集合角度来分析有限集中的最值动态规划两个阶段:状态表示(化零为整)集合属性:max,min,count状态计算(化整为零)集合划分:不重复,不遗漏划分依据:寻找最后一个不同点0-1背包问题有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背原创 2021-04-13 13:59:15 · 175 阅读 · 0 评论 -
Leetcode-21. 合并两个有序链表(python)
Leetcode-21. 合并两个有序链表问题描述Method 1Method 2问题描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4链表节点定义:class ListNode: def __i...原创 2019-11-01 20:13:20 · 154 阅读 · 0 评论 -
Leetcode-19. 删除链表的倒数第N个节点(python)
Leetcode-19. 删除链表的倒数第N个节点问题描述Method 1Method 2问题描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用...原创 2019-10-29 10:47:23 · 161 阅读 · 0 评论 -
Leetcode-2.两数相加(python)
Leetcode-2.两数相加问题描述Method 1问题描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -&g...原创 2019-10-27 15:48:58 · 175 阅读 · 0 评论 -
Leetcode-3.无重复字符的最长子串(python)
Leetcode-3.无重复字符的最长子串问题描述Method 1问题描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “...原创 2019-10-25 09:20:01 · 173 阅读 · 0 评论 -
Leetcode-1.两数之和(python)
Leetcode-1.两数之和两数之和Method 1Method 2Method 3两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums...原创 2019-10-24 10:30:08 · 127 阅读 · 0 评论