模板
埃拉西亚的死亡阴影
这个作者很懒,什么都没留下…
展开
-
快速排序模板
快速排序和快速选择算法重点在与partition,partition有多种写法,其中用最后一位当作piviot的写法比较简单。原创 2024-06-08 15:37:34 · 115 阅读 · 0 评论 -
单调栈理解与运用
(举例,输入为 7,6,5,4,3,2,1。4. 例子: 1, 5, 8, 3, 2 找到每一个数字右侧第一个比当前大的数字,没有输出-1,输出一个数组。[1] 放入 5, 但1比5小我们人为pop出1, 现在为 [5] // 此时第一个比1大的就是5。[1] 放入 5, 但1比5小我们人为pop, 现在为 [5]同理 8比5 大,现在为[8] // 此时第一个比5大的就是8。2. 举例: 数字: 1, 5, 8, 3, 2 依次入栈。我们的答案就是[5, 8, -1, -1, -1]原创 2024-05-10 13:03:01 · 270 阅读 · 0 评论 -
滚动哈希的简单解释
3. 问题: 如果我们用十进制,那么很多字符串的哈希值会相同,我们最好用质数(比如31,37)代替10,并且防止过大数值要进行取模。1. 什么时候用和复杂度: 滚动哈希通常用于字符串查找等题目中,复杂度通常为O(N+M)也就是O(N)。2. 解释: 我们可以类比平时的数字,12367这个数字,等于1*10^4+2*10^3+3*10^2+6*10+7。同理如果abcfg(12367)我们可以将其的哈希值定义为12367。23乘以10+6等于236, 其中23省下了运算步骤。4. 滚动:我们用10举例。原创 2024-05-09 19:09:33 · 667 阅读 · 0 评论 -
leetcode拓扑排序思路与模板
简介: 拓扑排序问题中我们经常需要判断一个有向无环图是否有环或者能否按顺序走完等。如果一个节点被指向的次数是0, 那么这个节点就是起始节点。存储入度(节点被指向次数),可以用Map或者数组来存放。下一个节点次数减1并判断是否为0, 为0则放入队列。我们判断入度,通俗解释就是当前节点被指向的次数,所有起始节点放入队列,循环遍历下一个或者多个节点。初始化图:用数组作为输入表示方向。最后判断是否有节点没有走到。原创 2024-05-12 22:04:56 · 127 阅读 · 1 评论