算法笔记 2
文章平均质量分 85
路哞哞
一些笔记和心得而已。
展开
-
专题简介和链接
这个专题是为了复习算法题而重新创建的,之前的《算法笔记》专题过于冗杂,复习难度较大,所以新建了这个专题。这个专题以灵神的算法笔记为基础,记录刷题思路和过程。原创 2023-10-26 10:40:07 · 40 阅读 · 0 评论 -
一、基础算法精讲:双指针
注意,这里可以使用相向双指针的原因是因为这里的数组是非递减的。反过来说,如果在待替换子串之外的任意字符的出现次数都不超过。将原问题转换为求解数组中最长的子数组,使得子数组的元素和为。,那么无论怎么替换,都无法使这个字符的出现次数等于。为平衡字符串,即每个字符的出现次数均为。注意:一个凹槽由三个位置决定【最左边(之外的任意字符的出现次数超过。这里能够使用双指针是因为。,那么可以通过替换,使。条件中是满足单调性的。原创 2023-10-28 09:36:08 · 155 阅读 · 0 评论 -
二、基础算法精讲:二分
Q:返回数组中大于等于 targettargettarget 第一个数的索引,如果所有数都小于 targettargettarget,则返回 −1-1−1。二分查找三种写法:建议使用闭区间写法,比较容易记忆闭区间写法左闭右开写法开区间写法二分查找四种任务之间转换(查找整数的任务前提下):所有任务都可以基于第一个任务进行转换Leetcode 34时间复杂度:O(logn)O(logn)O(logn)空间复杂度:O(1)O(1)O(1)2、二分查找-习题课2.1 寻找峰值Leetcode原创 2023-10-28 11:43:33 · 114 阅读 · 0 评论 -
三、基础算法精讲:链表-反转系列
python 中,参数注解。原创 2023-10-31 09:01:08 · 155 阅读 · 0 评论 -
四、基础算法精讲:链表-快慢指针
【代码】四、基础算法精讲:链表-快慢指针。原创 2023-10-31 09:31:08 · 86 阅读 · 0 评论 -
五、基础算法精讲:链表-删除系列
【代码】五、基础算法精讲:链表-删除系列。原创 2023-10-31 10:52:22 · 118 阅读 · 0 评论 -
六、基础算法精讲:二叉树与递归
先遍历左右子树,再判断节点值,即当前节点大于左子树区间的最大值,小于右子树区间的最小值,将区间往上传。分别代表当前节点子树值的范围(开区间)。中序遍历二叉搜索树后一定会得到一个。的长度时,将该结点记录到。原创 2023-11-09 19:36:20 · 160 阅读 · 0 评论 -
七、基础算法精讲:回溯
【代码】七、基础算法精讲:回溯。原创 2023-11-17 20:20:23 · 254 阅读 · 0 评论 -
八、基础算法精讲:动态规划一
目录一、从记忆化搜索到递推1.1 打家劫舍1.2 打家劫舍 II二、01背包 完全背包 至多/恰好/至少2.1 目标和2.2 零钱兑换2.3 和为目标值的最长子序列的长度三、最长公共子序列 LCS3.1 最长公共子序列3.2 编辑距离四、最长递增子序列 LIS4.1 最长递增子序列4.2 最长递增子序列 II4.3 无矛盾的最佳球队一、从记忆化搜索到递推1.1 打家劫舍Leetcode 198解法一:递归+记录中间结果 = 记忆化搜索class Solution: def rob(self原创 2023-11-21 18:40:48 · 281 阅读 · 0 评论 -
九、基础算法精讲:动态规划二
在图论中,独立集(Independent Set)是一种顶点的集合,其中任意两个顶点都不相邻,也就是说,集合中的顶点之间没有边相连。换句话说,独立集是一组顶点,其中没有两个顶点通过一条边相连。因为回文子序列从左往右或者从右往左都是一样的,因此可以求解序列。的最长公共子序列(LCS),即为最长公共子序列。原创 2023-11-27 16:28:13 · 240 阅读 · 0 评论