自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 LeetCode42. 接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

2023-05-04 23:01:17 418

原创 LeetCode55. 跳跃游戏

给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。

2023-05-03 19:59:48 965

原创 LeetCode347. 前 K 个频繁元素

给定一个非空的整数数组,返回其中出现频率前 k 高的元素。

2023-05-01 23:31:49 548

原创 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

原创 UVA 11078 Open Credit System

给定一个长度为n的整数序列A0,A1,…, An-1,找出两个整数Ai和Aj(i

2023-03-28 15:06:46 147

原创 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 437. Path Sum III

【代码】LeetCode 437. Path Sum III。

2023-03-21 09:45:53 151

原创 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

原创 Codeforces 1042B Vitamins

【代码】Codeforces 1042B Vitamins。

2023-03-17 17:21:12 660

原创 LeetCode 701. Insert into a Binary Search

这道题目的思路很简单,就是找到要插入的位置,然后插入即可。这里有两种方法,一种是递归,一种是迭代。递归的方法比较简单,就是找到要插入的位置,然后插入即可。迭代的方法比较麻烦,需要找到要插入的位置,然后插入即可。

2023-03-17 10:43:57 86

原创 LeetCode 394. Decode String

这样可以减少内存分配的次数,提高性能。拼接字符串时可以使用。

2023-03-13 15:57:19 87

原创 LeetCode 844. Backspace String Compare

设置两个栈stack1和stack2, 一个用来存储字符串 s, 一个用来存储字符串 t, 然后遍历两个栈, 如果两个栈的元素相同, 则返回 true, 否则返回 false.

2023-03-13 11:16:50 237

原创 LeetCode 299. Bulls and Cows

LeetCode 299. Bulls and Cows。

2023-03-12 09:19:41 246

原创 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关注的人

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