数据结构与算法
文章平均质量分 72
个人写的学习笔记
凌十一
新手村
展开
-
红黑树高度上限2log2(N+1)简洁证明【通俗易懂且正确!】
首先阅读这篇文章 https://fanlv.fun/2018/08/12/binary-tree/根据2-3树的构造规则,可知2-3树是一个满树,若全为2-的节点,即为满二叉树。转化过程中,红连接展平,黑链接不动。始终不变的是黑连接,什么是2-3树,红黑树如何转换成2-3树。由红黑树转化为2-3树可知,原创 2024-05-14 00:54:47 · 947 阅读 · 1 评论 -
代码随想录60天总结
不可能每次训练都比上一次强,有状态好的时候,有状态差的时候!没想到自己也已经写了2w3k多字的笔记,小小成就,记录一下!健身的人都知道,如果放弃训练,那么就不可能有进步,如果每次能都比上次突破一点点🤏坚持下来,回头再看!当你啰嗦的时候,说明你之前的表达并不清晰,应该去修正表达(重构),而不应该继续啰嗦,在屎山上堆屎,容易把人绕(臭)晕。从一开始1个小时甚至2小时解一道题、找bug,随着不断的练习,我感到自己越写越熟练、越来越能轻松的理解解题思路!你不必完美要求自己,只要比之前的自己有进步就很棒了!原创 2024-01-08 11:12:25 · 1364 阅读 · 0 评论 -
代码随想录day60:贪心算法|84.柱状图中最大的矩形
【代码】代码随想录day60:贪心算法|84.柱状图中最大的矩形。原创 2024-01-08 01:03:55 · 479 阅读 · 0 评论 -
代码随想录:动态规划|309.最佳买卖股票时机含冷冻期&714. 买卖股票的最佳时机含手续费
而后还可以合并为3个状态,将dp[1]和dp[2]合并为一个状态。即:不持有 = 没过冷冻期+过了冷冻期。怎么好理解怎么去想。而且你完全可以把持有状态换成买入状态。vscode编辑器,doxygen document插件自动生成的doxygen注释语法。代码风格clang-format格式based Google。dp存储状态:持有和不持有的两个状态,细分为4个状态。股票问题的核心:分清楚状态和状态如何转化的。使用的doctest.h单元测试库。clangd语言服务器。原创 2023-12-28 14:53:52 · 417 阅读 · 0 评论 -
代码随想录day50:动态规划|买卖股票的最佳时机III&IV
看第二行代码,左侧dp[1]是当前第i天的第一次不持有状态, max函数中最右侧dp[1]是历史数据,dp[0] 而是第 i 天的最新的数据,因为dp[0]在第一行代码中先更新了。如果num[i]是历史最低,第一次持有dp[0]才会更新,但dp[0]+price[i]==0, 对dp[1]第一次卖出求最大值无影响。对dp[1]第一次卖出没影响的,因为第一次卖出dp[1]的全局最小值就是0,即当天买当天卖,其他时候我们所执行的操作都收益大于0的。从后向前遍历,同理。因为dp[0]存储的是历史最低价,原创 2023-12-27 10:23:30 · 454 阅读 · 0 评论 -
代码随想录Day1|704. 二分查找,27. 移除元素
二分查找和双指针原创 2023-11-08 23:18:25 · 1373 阅读 · 0 评论 -
计数排序(C语言实现)------学习笔记
计数排序计数排序百度百科介绍:计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。当然这是一种牺牲空间换取时间的做法,当时间复杂度O(k)>O(nlog(n))的时候其效率反而不如基于比较的排序(基于比较的排序的时间复杂度在理论上的...原创 2019-12-05 22:24:16 · 859 阅读 · 0 评论