自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(274)
  • 收藏
  • 关注

原创 redis 设计与实现

Redis 的设计与## 标题实现第一部分1.引言2.简单动态字符串3.链表4.字典5.跳跃表6.整数集合7.压缩列表8.对象第二部分9.数据库10.RDB持久化11.AOF持久化12.事件13.客户端14.服务器第三部分15.复制16.sentinel17.集群第四部分18.发布与订阅19.事务20.lua脚本21.排序22.二进制位数组23.慢日志查询24.监视器...

2021-04-25 10:15:31 79

原创 RocketMQ的消息模式

RocketMQ的消息模式模式说明优点缺点广播模式消息发送给所有订阅者可以快速通知大批订阅者消息重复率高,资源浪费大定向模式消息只发送指定订阅者实现独享消息,安全、准确增加路由负担,不利于扩展过滤模式根据表达式过滤消息减少不必要消息,精准投递增加过滤计算开销标签模式根据标签过滤消息简单、灵活的过滤方式需要配合业务设计标签重试队列把消费失败消息发送重试队列自动重试,提高可靠性增加重试开销,降低效率延时队列消息延迟指定时间发

2023-07-10 23:08:13 207

原创 剑指 Offer II 070. 排序数组中只出现一次的数字

给定一个只包含整数的有序数组 nums ,每个元素都会出现两次,唯有一个数只会出现一次,请找出这个唯一的数字。你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。

2022-10-16 15:31:54 407 1

原创 解题报告 - 剑指 Offer II 069. 山峰数组的顶部

给定由整数组成的山峰数组 arr ,返回任何满足 arr[0] < arr[1] < …arr[i - 1] < arr[i] > arr[i + 1] > …> arr[arr.length - 1] 的下标 i ,即山峰顶部。

2022-10-13 08:32:17 263

原创 解题报告 - 剑指 Offer 04. 二维数组中的查找

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

2022-10-10 13:33:03 415

原创 解题报告 - 209. 长度最小的子数组

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。给定一个含有 n 个正整数的数组和一个正整数 target。解答二:滑动窗口(效率更高)

2022-10-09 17:57:44 75

原创 解题报告 - 搜索二维矩阵

矩阵中,是否存在一个目标值。编写一个高效的算法来判断。

2022-10-07 20:54:59 82

原创 ## 跳出框架,才会有上帝视角

麦肯锡的行业分析课程为什么会提出问题就会有答案?因为问题存在的越古老,答案存在的时间就越长,好的问题可以探寻问题存在的本质原因,接近本源才可以更好的解决问题。给出问题,总会有答案,好的问题可以协助自己第一时间找到答案。看到表象的时候,大多数人第一反应是how to solve the question?质疑问题本身就是在解决问题,学会提出一个好问题,好问题是解决问题的第一步。真正的困难在于提出问题,正确的提问方式总能最快的找到答案。聪明的工程师最大的困境是优化本不应该存在的东西。

2022-10-07 14:46:34 111

原创 解题报告 - 1475. 商品折扣后的最终价格

解题报告 - 1475. 商品折扣后的最终价格@TOC1475. 商品折扣后的最终价格示例:提示:一、解题关键词二、解题报告1.思路分析i , j 两次循环使用优惠券不能重复 所以内部循环需要满足条件就结束

2022-09-09 17:22:21 88

原创 LeetCode 3. 无重复字符的最长子串

解题报告 -无重复字符的最长子串。

2022-09-09 17:21:55 926

原创 INnoDB(索引与算法)

FIC 可以避免InnoDB创建临时表,提高索引创建的效率,但是会阻塞DML,OSC也没有完美解决这个问题,mysql5.6开始支持Online DDL。缺点:大表的索引添加修改,需要很长时间,且修改时间内数据库不可用。​ 解决方案:引入FIC(快速索引创建)修改临时表为原来表名。...

2022-08-31 07:44:38 104

原创 问题越古老,解决方案存在的时间就越长

小狗钱钱。

2022-08-21 20:09:00 696

原创 LeetCode 311. 稀疏矩阵的乘法

LeetCode 311. 稀疏矩阵的乘法提示:一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目xxx

2022-06-04 16:47:21 509

原创 LeetCode 247. 中心对称数 II

LeetCode 247. 中心对称数 II提示:一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目xxx

2022-06-04 06:33:45 241

原创 LeetCode 66. 加一

LeetCode 66. 加一提示:一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目xxx

2022-06-01 14:07:01 74

原创 LeetCode 246. 中心对称数

LeetCode 246. 中心对称数提示:一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目xxx

2022-05-31 22:18:40 1173

原创 LeetCode 245. 最短单词距离 III

LeetCode 245. 最短单词距离 III文章目录LeetCode 245. 最短单词距离 III题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述;给定一个字符串数组 wordsDict 和两个字符串 word1 和 word2 ,返回列表中这两个单词之间的最短距离。注意:word1 和 word2 是有可能相同的,并且它们将分别表示为列表中 两个独立的单词 。&emsp&emsp示例 1:&emsp&

2022-05-30 21:56:06 1033

原创 LeetCode 244. 最短单词距离 II

LeetCode 244. 最短单词距离 II文章目录LeetCode 244. 最短单词距离 II题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述请设计一个类,使该类的构造函数能够接收一个字符串数组。然后再实现一个方法,该方法能够分别接收两个单词,并返回列表中这两个单词之间的最短距离。实现 WordDistanc 类:WordDistance(String[] wordsDict) 用字符串数组 wordsDict 初始化对象。int sh

2022-05-30 13:53:18 1448

原创 LeetCode 243. 最短单词距离

LeetCode 243. 最短单词距离文章目录LeetCode 243. 最短单词距离题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述;给定一个字符串数组 wordDict 和两个已经存在于该数组中的不同的字符串 word1 和 word2 。返回列表中这两个单词之间的最短距离。&emsp&emsp示例 1:&emsp&emsp输入: wordsDict = [“practice”, “makes”, “pe

2022-05-29 21:21:24 161

原创 LeetCode 186. 翻转字符串里的单词 II

LeetCode 186. 翻转字符串里的单词 II文章目录LeetCode 186. 翻转字符串里的单词 II题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给定一个字符串,逐个翻转字符串中的每个单词。  示例:  输入: [“t”,“h”,“e”," “,“s”,“k”,“y”,” “,“i”,“s”,” “,“b”,“l”,“u”,“e”]  输出: [“b”,“l”,“u”,“e”,” “,“i”,“s”,” “,“s”,“k”,“

2022-05-29 19:43:18 95

原创 LeetCode 163. 缺失的区间

LeetCode 163. 缺失的区间文章目录LeetCode 163. 缺失的区间题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给定一个排序的整数数组 nums ,其中元素的范围在 闭区间 [lower, upper] 当中,返回不包含在数组中的缺失区间。  示例:  输入: nums = [0, 1, 3, 50, 75], lower = 0 和 upper = 99,  输出: [“2”, “4->49”, “51->

2022-05-29 17:26:22 80

原创 LeetCode 1134. 阿姆斯特朗数

LeetCode 1134. 阿姆斯特朗数文章目录LeetCode 1134. 阿姆斯特朗数题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给你一个整数 n ,让你来判定他是否是 阿姆斯特朗数,是则返回 true,不是则返回 false。假设存在一个 k 位数 n ,其每一位上的数字的 k 次幂的总和也是 n ,那么这个数是阿姆斯特朗数 。  示例 1:  输入:n = 153  输出:true  示例:  153 是一个 3 位数,

2022-05-28 15:50:59 308

原创 LeetCode 1180. 统计只含单一字母的子串

LeetCode 1180. 统计只含单一字母的子串文章目录LeetCode 1180. 统计只含单一字母的子串题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给你一个字符串 s,返回 只含 单一字母 的子串个数 。  示例 1:  输入: s = “aaaba”  输出: 8  解释: 只含单一字母的子串分别是 “aaa”, “aa”, “a”, “b”。  “aaa” 出现 1 次。  “aa” 出现 2 次。  “a” 出现

2022-05-28 15:38:13 206

原创 LeetCode 339. 嵌套列表权重和

LeetCode 159. 至多包含两个不同字符的最长子串文章目录LeetCode 159. 至多包含两个不同字符的最长子串题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给定一个字符串 s ,找出 至多 包含两个不同字符的最长子串 t ,并返回该子串的长度。  示例 1:  输入: “eceba”  输出: 3  解释: t 是 “ece”,长度为3。LeetCode 159. 至多包含两个不同字符的最长子串提示:一、解题关

2022-05-28 10:01:37 137

原创 LeetCode 1165. 单行键盘

LeetCode 1165. 单行键盘文章目录LeetCode 1165. 单行键盘题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述我们定制了一款特殊的键盘,所有的键都 排列在一行上 。给定一个长度为 26 的字符串 keyboard ,来表示键盘的布局(索引从 0 到 25 )。一开始,你的手指在索引 0 处。要输入一个字符,你必须把你的手指移动到所需字符的索引处。手指从索引 i 移动到索引 j 所需要的时间是 |i - j|。您需要输入一

2022-05-27 22:20:02 285

原创 LeetCode 760. 找出变位映射

LeetCode 760. 找出变位映射文章目录LeetCode 760. 找出变位映射题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给定两个列表 Aand B,并且 B 是 A 的变位(即 B 是由 A 中的元素随机排列后组成的新列表)。我们希望找出一个从 A 到 B 的索引映射 P 。一个映射 P[i] = j 指的是列表 A 中的第 i 个元素出现于列表 B 中的第 j 个元素上。列表 A 和 B 可能出现重复元素。如果有多于一种答案,

2022-05-27 21:56:59 128

原创 LeetCode 28. 实现 strStr()

LeetCode 28. 实现 strStr()文章目录LeetCode 28. 实现 strStr()题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问

2022-05-27 21:28:42 72

原创 LeetCode 1265. 逆序打印不可变链表

LeetCode 1265. 逆序打印不可变链表文章目录LeetCode 1265. 逆序打印不可变链表题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给您一个不可变的链表,使用下列接口逆序打印每个节点的值:ImmutableListNode: 描述不可变链表的接口,链表的头节点已给出。您需要使用以下函数来访问此链表(您 不能 直接访问 ImmutableListNode):ImmutableListNode.printValue():打印当前节

2022-05-24 16:30:32 163

原创 LeetCode 剑指 Offer II 105. 岛屿的最大面积

LeetCode 剑指 Offer II 105. 岛屿的最大面积文章目录LeetCode 剑指 Offer II 105. 岛屿的最大面积题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给定一个由 0 和 1 组成的非空二维数组 grid ,用来表示海洋岛屿地图。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的

2022-05-23 20:03:21 87

原创 LeetCode 剑指 Offer II 095. 最长公共子序列

LeetCode 剑指 Offer II 095. 最长公共子序列文章目录LeetCode 剑指 Offer II 095. 最长公共子序列题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新

2022-05-23 15:49:45 81

原创 LeetCode 剑指 Offer II 094. 最少回文分割

LeetCode 剑指 Offer II 094. 最少回文分割文章目录LeetCode 剑指 Offer II 094. 最少回文分割题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给定一个字符串 s,请将 s 分割成一些子串,使每个子串都是回文串。返回符合要求的 最少分割次数 。  示例 1:  输入:s = “aab”  输出:1  解释:只需一次分割就可将 s 分割成 [“aa”,“b”] 这样两个回文子串。LeetCode

2022-05-23 15:15:52 60

原创 LeetCode 剑指 Offer II 093. 最长斐波那契数列

LeetCode 剑指 Offer II 093. 最长斐波那契数列文章目录LeetCode 剑指 Offer II 093. 最长斐波那契数列题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述如果序列 X_1, X_2, …, X_n 满足下列条件,就说它是 斐波那契式 的:n >= 3对于所有 i + 2 <= n,都有 X_i + X_{i+1} = X_{i+2}给定一个严格递增的正整数数组形成序列 arr ,找到 arr 中

2022-05-23 14:26:01 86

原创 LeetCode 剑指 Offer II 039. 直方图最大矩形面积

LeetCode 剑指 Offer II 039. 直方图最大矩形面积文章目录LeetCode 剑指 Offer II 039. 直方图最大矩形面积题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给定非负整数数组 heights ,数组中的数字用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。  示例 1:  输入:heights = [2,1,5,6,2,3]  输出:10 

2022-05-20 12:26:22 176

原创 LeetCode 剑指 Offer II 075. 数组相对排序

LeetCode 剑指 Offer II 075. 数组相对排序文章目录LeetCode 剑指 Offer II 075. 数组相对排序题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给定两个数组,arr1 和 arr2,arr2 中的元素各不相同,arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末

2022-05-19 08:32:09 160

原创 LeetCode 968. 监控二叉树

LeetCode 968. 监控二叉树文章目录LeetCode 968. 监控二叉树题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述 题目描述xxx提示:一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例class Solution { int result ; public int minCameraCover(TreeNode root) { //最值 /

2022-05-12 08:39:41 88

原创 LeetCode 124. 二叉树中的最大路径和

LeetCode 124. 二叉树中的最大路径和文章目录LeetCode 124. 二叉树中的最大路径和题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。  示例 1:  输入:roo

2022-05-12 07:46:46 73

原创 LeetCode 1928. 规定时间内到达终点的最小花费

LeetCode 1928. 规定时间内到达终点的最小花费文章目录LeetCode 1928. 规定时间内到达终点的最小花费题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述 一个国家有 n 个城市,城市编号为 0 到 n - 1 ,题目保证 所有城市 都由双向道路 连接在一起 。道路由二维整数数组 edges 表示,其中 edges[i] = [xi, yi, timei] 表示城市 xi 和 yi 之间有一条双向道路,耗费时间为 timei 分

2022-05-12 07:11:52 170

原创 LeetCode 787. K 站中转内最便宜的航班

LeetCode 787. K 站中转内最便宜的航班文章目录LeetCode 787. K 站中转内最便宜的航班题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述有 n 个城市通过一些航班连接。给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始,以价格 pricei 抵达 toi。现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是

2022-05-10 17:23:35 356

原创 LeetCode 886. 可能的二分法

LeetCode 886. 可能的二分法文章目录LeetCode 886. 可能的二分法题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给定一组 n 人(编号为 1, 2, …, n), 我们想把每个人分进任意大小的两组。每个人都可能不喜欢其他人,那么他们不应该属于同一组。给定整数 n 和数组 dislikes ,其中 dislikes[i] = [ai, bi] ,表示不允许将编号为 ai 和 bi的人归入同一组。当可以用这种方法将所有人分进

2022-05-09 10:18:51 144

原创 LeetCode 1325. 删除给定值的叶子节点

LeetCode 1325. 删除给定值的叶子节点文章目录LeetCode 1325. 删除给定值的叶子节点题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目题目描述给你一棵以 root 为根的二叉树和一个整数 target ,请你删除所有值为 target 的 叶子节点 。注意,一旦删除值为 target 的叶子节点,它的父节点就可能变成叶子节点;如果新叶子节点的值恰好也是 target ,那么这个节点也应该被删除。也就是说,你需要重复此过程直到不能继续

2022-05-07 11:02:58 461

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除