- 博客(11)
- 收藏
- 关注
原创 Redis数据结构和数据类型
Redis数据结构和数据类型以下整理自《Redis设计与实现》Redis数据结构简单动态字符串Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串(simple dynamic string, SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。区别总结:C字符串SDS获取字符串长度的复杂度为O(N)获取字符串长度的复杂度为O(1)API是不安全的,可能会造成缓冲区溢出API是安全的
2021-05-21 10:30:43
143
原创 两个示例弄懂KMP(Java)
两个示例弄懂KMP(Java)KMP简介KMP适用的问题:字符串匹配问题KMP核心操作:为模式串构建next数组,简化比较步骤,跳过绝不可能成功的字符串比较。构建next数组的核心思想:对模式串中的第i个字符,其前缀j个字符组成的子串与后缀j个字符组成的子串相等。也即对模式串p,有:p[1~j] = p[i-j+1~i](索引从1开始)详细的KMP解析和思考见:https://www.zhihu.com/question/21923021/answer/1032665486示例一:实现str
2021-04-20 19:43:34
155
原创 四个示例搞懂并查集(Java)
四个示例搞懂并查集(Java)并查集简介并查集适用的问题:元素分组问题并查集操作:合并(Merge),一般用于把两个集合合并,集合用一个树状结构表示,最终汇集到一个根节点;查询(Find),查询两个节点是否具有相同的根节点。并查集的两个优化操作:路径压缩:在查询的同时,通过parent[i] = find(parent[i]);进行路径压缩,避免了树结构的重复遍历,直接将节点的父节点化为根节点,提高查询效率。秩优化:合并过程中为了使树尽可能平衡,引入秩数组减小根节点左右子树高度差。在开
2021-04-20 14:11:42
270
原创 闫氏DP分析法
闫氏DP分析法以下为总结y总直播的内容,视频原址。思维是视频中的思维,代码是自己用Java写的。y总yyds!核心:从集合角度来分析有限集中的最值动态规划两个阶段:状态表示(化零为整)集合属性:max,min,count状态计算(化整为零)集合划分:不重复,不遗漏划分依据:寻找最后一个不同点0-1背包问题有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背
2021-04-13 13:59:15
212
原创 直接用IDEA刷leetcode的插件--Leetcode editor (保姆级安装示例教程)
直接用IDEA刷leetcode的插件–Leetcode editor (保姆级安装示例教程)你是否还在发愁刷 leetcode 不好debug?你是否还在往IDEA里粘代码调试好再“CV”回leetcode网页?(是本菜鸡)那么你就需要我下面讲的这款插件 — Leetcode-editor其实这款插件我装了很久了,之前一直不怎么用的上。两方面的原因,一是这款插件6.7之前的版本实际上就相当于将leetcode网页编辑界面搬到了IDEA上,debug调试仍旧不太方便。二是我之前对leetc
2021-02-02 21:26:56
25609
19
转载 Python %d、%s、%r等用法【转载】
Python %d、%s、%r等用法————————————————版权声明:本文为优快云博主「SuperCreators」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/SuperCreators/article/details/81393977...
2019-11-05 17:31:00
751
原创 Leetcode-21. 合并两个有序链表(python)
Leetcode-21. 合并两个有序链表问题描述Method 1Method 2问题描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4链表节点定义:class ListNode: def __i...
2019-11-01 20:13:20
206
原创 Leetcode-19. 删除链表的倒数第N个节点(python)
Leetcode-19. 删除链表的倒数第N个节点问题描述Method 1Method 2问题描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用...
2019-10-29 10:47:23
218
原创 Leetcode-2.两数相加(python)
Leetcode-2.两数相加问题描述Method 1问题描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -&g...
2019-10-27 15:48:58
221
原创 Leetcode-3.无重复字符的最长子串(python)
Leetcode-3.无重复字符的最长子串问题描述Method 1问题描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “...
2019-10-25 09:20:01
222
原创 Leetcode-1.两数之和(python)
Leetcode-1.两数之和两数之和Method 1Method 2Method 3两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums...
2019-10-24 10:30:08
162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人