Lee's Blog
字符串匹配 字符串匹配
字符串匹配相对来说是一个很常见的问题,无论是在工程中还是在笔试和面试中。一般来说,字符串匹配的输入有一个原字符串和一个子串,要求返回子串在原字符串中首次出现的位置。即,c++标准库中的find函数。 本文以leetcode的第28题实现st
2022-11-03
剑指offer 剑指offer
刷题到现在,稍微有了一点点手感,所以从今天开始,重点要刷一刷剑指offer了。这里将记录在刷剑指offer的过程中,一些自己的题解。 1 - 5 剑指offer03. 数组中重复的数字 题解: class Solution
2022-09-22
bfs bfs
BFSBFS即广度优先搜索,是一种图论算法,用于在图中寻找两个节点之间的最短路径。它的基本思想是,从起始节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。如果目标节点被发现,则算法中止。广度优先搜索是一种盲目搜索,它并不
2022-09-06
前缀和与差分数组 前缀和与差分数组
今天在看东哥的算法笔记时学习了两个以空间换时间的算法技巧,前缀和和差分数组。但是在刷题的时候不以为然,多层for循环走天下,直到测例超时才幡然醒悟,悔之晚矣呀!但是还是不得不吐槽一下,leetcode的某些测试用例…… 前缀和前缀和适用于
2022-08-17
排序算法 排序算法
排序冒泡排序平均时间复杂度为$O(n^2)$,在最好情况下的时间复杂度为$O(n)$,在最坏情况下的时间复杂度为$O(n^2)$,在原地修改,所以空间复杂度为$O(1)$。代码实现如下所示: template<typename T>
2022-08-04
动态规划 动态规划
动态规划的基础类题目 斐波那契数列 背包问题 爬楼梯 …… 股票问题 子序列问题 使用动态规划解题时需要注意的点:1.DP数组的定义和下标的含义2.递推公式3.DP数组的初始化4.遍历顺序5.打印DP数组 动态规划的尝试 T70.爬楼梯(
2022-07-18
回溯算法 回溯算法
回溯算法是一种类似于深搜的穷举类型的算法,回溯算法在遍历树的树枝,而深搜则是在遍历树的节点在解决回溯算法时需要注意的几个问题是: 路径:即当前已做出的选择 选择列表:即站在当前节点上,可以做出的选择 结束条件: 即如何判断已经到达了树的底
2022-07-16