
算法刷题总结
文章平均质量分 93
针对刷题遇到的算法进行归纳总结
ellisonzhao
简单的事情重复做,重复的事情用心做,用心的事情坚持做。懂得越多,不懂的越多。
展开
-
二分查找模板总结
二分查找模板总结 二分查找是一种在 有序数组 中查找某一特定元素的搜索算法。元素集合有顺序,元素性质有分界点,二分法就可以用来求分界点,并不一定要求集合中元素是不重复的。 算法思路:假设目标值在闭区间 [left, right] 中, 每次将区间长度缩小一半,当 left = right 时,我们就找到了目标值。 常规写法 二分查找需要注意 查找区间 和 终止条件,稍不留神可能出现死循环。常见的写法如下: int binarySearch(vector<int> &nums, int t原创 2022-04-09 17:07:39 · 6114 阅读 · 0 评论 -
理解 Manacher's Algorithm(马拉车算法)——最长回文子串问题
求字符串 s 的最长回文子串 一、马拉车算法(Manacher’s Algorithm) 通常的回文串匹配方法:以某个字符为中心,依次向两边匹配。这样有一个问题是,当回文串长度分别为奇数和偶数时,不方便统一处理。马拉车算法的核心思想是利用已经计算过的回文串,并且根据对称性减少匹配次数。另外对字符串进行特殊处理,消除回文串长度奇偶性可能造成的影响。 1. 改造字符串 在字符串 S的相邻字符之间、字符...原创 2019-04-27 22:19:54 · 566 阅读 · 0 评论 -
最长回文子串与最长回文子序列
文章目录最长回文子串与最长回文子序列最长回文子串题目描述dp解法从中心扩展马拉车算法最长回文子序列题目描述dp 解法递归思想 最长回文子串与最长回文子序列 最长回文子串 LeetCode 链接: 5. 最长回文子串 题目描述 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个...原创 2019-05-18 15:55:39 · 1464 阅读 · 0 评论 -
最长上升( 递增 )子序列与最长连续上升( 递增 )子序列( LIS )
文章目录最长上升( 递增 )子序列与最长连续上升( 递增 )子序列( LIS )1. 最长上升子序列题目描述说明暴力 dp 解法转化为LCS求解二分查找+贪心2.最长连续上升子序列题目描述dp 解法3. 最长递增子序列的个数题目描述dp 解法 最长上升( 递增 )子序列与最长连续上升( 递增 )子序列( LIS ) 1. 最长上升子序列 LintCode题目地址: 76. 最长上升子序列 Leet...原创 2019-08-14 10:45:04 · 1967 阅读 · 0 评论