数据结构和算法
文章平均质量分 95
分享自己对数据结构或算法的见解
phshp
懂你可可爱爱,陪你酸酸甜甜
——娃哈哈
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【树状数组】讲解
树状数组或二叉索引树(Binary Indexed Tree),又以其发明者命名为Fenwick树,最早由 Peter M. Fenwick 于1994年以为题发表在。其初衷是解决数据压缩里的累积频率(Cumulative Frequency)的计算问题,现多用于高效计算数列的前缀和区间和。额。。。就是长得像树的形状的数组,没了。树状数组就是一棵被极致压缩的完全二叉树。原创 2025-05-06 23:15:52 · 1058 阅读 · 0 评论 -
【最长递增子序列】笔记
最长递增子序列(Longest Increasing Subsequence,简称LIS)是一种常见的算法问题,它要求在一个无序的整数数组中找到最长的严格递增子序列的长度。这个子序列不需要元素在原数组中连续,但必须保持原有的顺序。例如,对于数组 [10, 9, 2, 5, 3, 7, 101, 18],最长递增子序列可以是 [2, 3, 7, 101],其长度为4。原创 2025-05-06 20:04:19 · 871 阅读 · 0 评论 -
快排+归并排序讲解【分治思想】
我们一定是先把小数组的情况全部计算完再把它排序的,也就是你得到一个局部有序数组后,这个数组的逆序对个数已经被你算完了,既然算完了,那他原本的顺序不就可以随便打乱了吗。图中的箭头是从下往上的,因为我们是先排序最小的数组,再拿这小数组来排序大数组,所以这种每次把数组都二分的方法固定都是。可以这样理解:上面的图中,把每一层的时间都看作是。,需要多少层就看什么时候所有子数组的长度均为1。可以看到这是一个明显的分治和递归的过程。的事实,我们可以保证左边所有的。层,所有情况的时间复杂度都是。而情况二却只能老老实实的。原创 2025-05-01 20:18:15 · 683 阅读 · 0 评论 -
数位dp讲解
数位dp主要靠剪枝+记忆化搜索,写法比较固定,所以比较好记忆。上述题目中,我们遇到了10进制和2进制的题目,如果你遇到了字符串类型的数位dp,那么大概率是使用字母,并且告诉你按照字典序升序来搜索。如果全是小写字母或者全是大写字母,那你就把字符串看作是一个26进制的数字就ok了,其他都一样的,只不过这类题目大概率还需要结合字符串匹配(KMP)算法。原创 2025-05-01 15:10:30 · 1033 阅读 · 0 评论 -
为啥前序序列+后序序列无法确定一棵二叉树?(因为不熟(bushi))
梳理了二叉树的前序、中序和后序遍历序列的结构,让你深刻理解他们之间的关系。附带建树的代码和统计前序+后序可以构建出二叉树种类的情况树。原创 2025-04-26 16:39:53 · 933 阅读 · 0 评论
分享