- 博客(79)
- 收藏
- 关注
原创 MySQL面试题(二)
Linux文件系统页(OS Page)默认大小是4KB,而MySQL的页(Page)默认大小是16KB。InnoDB的页和操作系统的页的大小不一致,InnoDB的页写入磁盘时就需要分4次来写。这时候,存在一种情况:如果存储引擎正在写入的页的数据到磁盘时发生了宕机,这时如果我们只是写了一部分页,比如写4K,就宕机,这种情况就被叫做写失效,可能会导致数据的丢失,并且这种页数据的损坏,靠redoLog是无法恢复的。索引的分类:按字段的特性分类可以分为:主键索引、前缀索引、复合索引、普通索引。
2025-03-03 22:05:43
310
原创 消息队列与RocketMQ
比如物流系统发生故障,需要几分钟才能来修复,在这段时间内,物流系统要处理的数据被缓存到消息队列中,用户的下单操作正常完成。消息队列的一个重要作用是解耦,解耦的意思是将消息的发送者和接收者解耦,使得消息的发送者和接收者不需要知道对方的存在,只需要知道消息队列的存在即可。A系统处理完业务,通过MQ给B、C、D三个系统发送消息数据,如果B系统、C系统处理成功,D系统处理失败。注意事项:发送同步消息且Ack为SEND_OK,只代表该消息成功的写入了MQ当中,并不代表该消息成功的被Consumer消费了。
2025-03-03 18:52:55
708
原创 MySQL的索引
索引是MySQL存储引擎用于快速查找记录的一种数据结构。索引是一种特殊的数据文件:InnoDB 存储引擎中,表数据文件本身就是按照B+Tree组织的一个结构,这棵树的叶子节点保存的就是完整的数据记录,非叶子节点保存的是索引,在InnoDB中索引和数据都在.ibd文件。索引是一种数据结构,它是根据某个表中一个字段或多个字段创建的一个集合。
2025-03-02 22:24:05
891
原创 Go 1.18新特性——泛型
泛型是一种编程范式,它将类型参数化,可以用于编写灵活且可重用的函数或数据结构,这样我们就可以用自己的类型来代替那些被硬编码的类型。泛型的好处是可以在编译时期发现类型不匹配的错误,而不是在运行时期。
2023-06-06 09:39:54
2421
原创 消息队列简介
消息队列是一种进程间通信或同一进程的不同线程间的通信方式。消息队列是消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
2023-06-06 09:36:29
963
原创 Go 的时间操作
Go 语言中可以通过 time.Time 类型的 Format()函数对时间进行格式化,该函数的第一个参数是格式化的模板,模板里面的时间必须是 2006-01-02 15:04:05 这个时间,这个时间是固定的,不然就会出错,第二个参数是要格式化的时间。time.Timer 类型表示单次时间事件。time.Duration 是 time 包定义的一个类型,它代表两个时间点之间经过的时间,以纳秒为单位。time.Duration 是 time 包定义的一个类型,它代表两个时间点之间经过的时间,以纳秒为单位。
2023-05-14 08:31:32
4171
原创 Go语言基础
Go语言是谷歌2009年发布的第二款开源编程语言,它是一门编译型语言,它的语法与C语言类似,但它却是并发安全的,支持并行编程,而且它还能够方便地利用多核计算机进行高并发、高性能的程序开发。Go语言的出现,让我们在开发高并发程序时,不再需要去纠结线程、协程、锁、内存模型等问题,让我们可以更加专注于程序本身的逻辑。
2023-05-13 21:10:46
572
原创 LeetCode 96. Unique Binary Search Trees
动态规划,dp[i]表示i个节点的二叉搜索树的个数,dp[i] = dp[0] * dp[i-1] + dp[1] * dp[i-2] + …+ dp[i-1] * dp[0]。给定一个整数n,返回有n个节点的二叉搜索树的个数。
2023-05-12 20:04:25
110
原创 LeetCode 714. 买卖股票的最佳时机含手续费
给定一个整数数组prices,其中第i个元素代表了第i天的股票价格;非负整数fee代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。
2023-05-07 21:57:54
89
原创 LeetCode55. 跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。
2023-05-03 19:59:48
965
原创 LeetCode 785. 判断二分图
给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。这图中没有自环和平行边: graph[i] 中不存在i,并且graph[i]中没有重复的值。
2023-04-28 21:47:09
708
原创 LeetCode 15. 三数之和
给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素a,b,c,使得?请你找出所有和为0且不重复的三元组。答案中不可以包含重复的三元组。
2023-04-27 23:06:59
429
原创 LeetCode 18. 四数之和
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。答案中不可以包含重复的四元组。
2023-04-27 23:06:29
426
原创 LeetCode 501. Find Mode in Binary Search Tree
给定具有重复项的二叉搜索树 (BST) 的根,返回其中的所有模式(即最常出现的元素)。
2023-04-26 14:49:04
460
原创 LeetCode 84. Largest Rectangle in Histogram
Given an array of integers representing the histogram’s bar height where the width of each bar is , return the area of the largest rectangle in the histogram.给定一个整数数组,表示柱状图的高度,每个柱子的宽度为,返回柱状图中最大矩形的面积。这道题目的解法是单调栈,单调栈的思路是,维护一个单调递减的栈,当遇到比栈顶元素小的元素时,就计算栈顶元素的面积,
2023-04-24 21:25:05
387
原创 leetcode_131 Palindrome Partitioning
Given a string s, partition s such that everysubstringof the partition is apalindrome. Return all possible palindrome partitioning of s.给定一个字符串,将其分割成若干个回文串,返回所有可能的分割方案。
2023-04-22 19:51:32
567
原创 Leetcode 337. House Robber III
偷窃者发现了一个新的地方来偷窃。这个地方只有一个入口,称为“根”。除了根之外,每个房子都有一个且只有一个父房子。经过一番观察,聪明的小偷意识到“这个地方的所有房子都形成了一个二叉树”。如果两个直接链接的房子在同一晚上被打破,它将自动联系警察。采用后序遍历的原因是,后序遍历是先遍历左右子树,然后再遍历根节点,这样就可以保证在遍历根节点的时候,左右子树的。确定小偷今晚可以偷窃的最大金额,而不会警告警察。数组已经求解完毕,这样就可以直接使用左右子树的。数组来求解当前节点的。
2023-04-20 16:01:03
412
原创 LeetCode 343. Integer Break
动态规划,dp[i]表示i的最大乘积,dp[i] = max(dp[i], max(j, dp[j]) * max(i-j, dp[i-j])),其中j为1到i-1的数。给定一个整数n,将其分解为k个正整数的和,其中k>=2,并最大化这些整数的乘积。数学方法,当n>=5时,尽可能多的分解为3,当n=4时,分解为2*2。返回你可以得到的最大乘积。
2023-04-18 23:21:16
170
原创 LeetCode 96. Unique Binary Search Trees
动态规划,dp[i]表示i个节点的二叉搜索树的个数,dp[i] = dp[0] * dp[i-1] + dp[1] * dp[i-2] + …+ dp[i-1] * dp[0]。给定一个整数n,返回有n个节点的二叉搜索树的个数。
2023-04-18 23:16:15
93
原创 LeetCode 75. Sort Colors
链接: https://leetcode-cn.com/problems/sort-colors/
2023-03-28 11:14:22
73
原创 线性时间多数投票算法
论文链接: https://www.cs.utexas.edu/~moore/best-ideas/mjrty/index.html。
2023-03-27 08:53:52
86
原创 CodeForces 377A Maze
小P非常的喜欢方格迷宫。方格迷宫是一个n*m的由墙和空地构成的长方形方阵。只有当两点满足四联通条件时才能走过去。小P画了一个迷宫,里面所有的空地都是四连通的。但闲着没事干的小P认为自己画的迷宫里小墙太多了很难看,所以他希望能够通过把迷宫中k个格子从空地变成墙但不破坏整张图的连通性(即仍然保持所有空地在一个四连通块中)但是小P太蠢了做不来,请你帮助他。: 第一行n,m,k(描述如题) 第二到n+1行: 每行m个字符,分别是’.‘或’#'。'.‘表示空地,’#'表示墙。
2023-03-26 09:58:31
209
原创 LeetCode 230. Kth Smallest Element in a BST
链接: https://leetcode.com/problems/kth-smallest-element-in-a-bst/description/?
2023-03-25 09:44:27
137
1
原创 LeetCode 108. Convert Sorted Array to Binary
链接: https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/description/?
2023-03-25 09:21:08
60
原创 B树与B+树
又称,B树中所有结点的孩子个数的最大值称为B树的,通常用m表示。一棵m阶B树或为空树,或为满足如下特性的m叉树:树中每个结点至多有m棵子树,即至多含有m-1个关键字若根节点不是终端节点,则至少有两棵子树除根节点外的所有非叶节点至少有棵子树,即至少含有[m-2]+1个关键字。所有的叶子节点都出现在同一层,并且不带信息(可以视为外部节点或类似于折半查找判定树的查找失败节点,实际上这些节点不存在,指向这些节点的指针为空)。其中,为节点的关键字,且满足;为指向子树根节点的指针,且指针Pi-1。
2023-03-24 22:55:45
522
原创 CodeForces 55B Smallest number
链接: https://codeforces.com/contest/55/problem/B。
2023-03-24 16:07:36
123
原创 LeetCode 33. Search in Rotated Sorted Array
我们需要先将原数组扩展, 比如数组[4,5,6,7,0,1,2]扩展为[4,5,6,7,0,1,2,4,5,6,7],其实就是把原数组的起始位置之前的元素复制到数组的后面。再以数组[6,7,0,1,2,4,5]为例,中间元素是0,0小于数组的最后一个元素5,所以原数组的起始位置在0的左边或者就是0。以数组[4,5,6,7,0,1,2]为例,中间元素是7,7大于数组的最后一个元素2,所以原数组的起始位置在7的右边,也就是0的位置。可以这样理解, 在[4,5,6,7,0,1,2,4,5,6,7]里,
2023-03-20 11:31:03
217
原创 LeetCode 621. Task Scheduler
给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。然而, 每两个相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。返回 CPU 处理任务的最短时间。
2023-03-19 11:04:08
501
原创 LeetCode 148. Sort List
一个单向链表, 依据结点的值对其进行从小到大排序, 要求时间复杂度为O(nlogn), 空间复杂度为O(1)
2023-03-18 20:19:17
61
原创 LeetCode 701. Insert into a Binary Search
这道题目的思路很简单,就是找到要插入的位置,然后插入即可。这里有两种方法,一种是递归,一种是迭代。递归的方法比较简单,就是找到要插入的位置,然后插入即可。迭代的方法比较麻烦,需要找到要插入的位置,然后插入即可。
2023-03-17 10:43:57
86
原创 LeetCode 844. Backspace String Compare
设置两个栈stack1和stack2, 一个用来存储字符串 s, 一个用来存储字符串 t, 然后遍历两个栈, 如果两个栈的元素相同, 则返回 true, 否则返回 false.
2023-03-13 11:16:50
237
原创 LeetCode 116. Populating Next Right Pointers in Each Node
【代码】LeetCode 116. Populating Next Right Pointers in Each Node。
2023-03-11 16:53:38
374
原创 LeetCode 424. Longest Repeating Character Replacement
【代码】LeetCode 424. Longest Repeating Character Replacement。
2023-03-11 15:47:17
357
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人