- 博客(11)
- 收藏
- 关注
原创 Mysql三大范式
三大范式是 Mysql 数据库设计表结构所遵循的规范和指导方法,目的是为了减少冗余,建立结构合理的数据库,从而提高数据存储和使用的性能。三大范式之间是具有依赖关系的,比如第二范式是在第一范式的基础上建设的、第三范式是在第二范式的基础上建设的。当然 Mysql 数据库的范式不止三大范式,除了三大范式,还有巴斯-科德范式(BCNF)、第四范式(4NF)、第五范式(5NF,又称“完美范式")。而本篇文章,我们只介绍范式中常用的三大范式。
2025-09-08 13:53:07
921
原创 MySQL 索引 解析
索引是一种数据结构,它帮助 MySQL 高效地获取数据,而无需扫描整个表。它可以类比于书籍的目录:没有目录,查找特定内容需要逐页翻阅;有了目录,你可以快速定位到所需的章节和页码。在数据库中,索引本质上是一个独立于数据的、排序过的数据结构,它存储了索引字段的值以及指向对应数据行的指针(通常是主键或磁盘地址)。索引是数据库性能优化的核心手段之一。正确的索引设计可以带来几个数量级的性能提升。理解业务查询需求:分析高频、慢查询的WHEREORDER BYGROUP BYJOIN子句。
2025-09-02 11:35:33
1625
原创 LeetCode 剑指 Offer 10- II. 青蛙跳台阶问题(动态规划,循环求余)
LeetCode 剑指 Offer 10- II. 青蛙跳台阶问题 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2 示例 2: 输入:n = 7 输出:21 示例 3: 输入:n = 0 输出:1 提示: 0 <= n <= 100 前言 本题与 面试题10-
2020-11-15 19:12:34
310
原创 LeetCode 剑指 Offer 10- I. 斐波那契数列(动态规划)
LeetCode 剑指 Offer 10- I. 斐波那契数列 题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
2020-11-15 17:40:45
342
原创 LeetCode 剑指 Offer 09. 用两个栈实现队列(亲测有效)
LeetCode 剑指 Offer 09. 用两个栈实现队列 题目描述 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 输出:[null,null,3,-1] 示例 2: 输入: ["C
2020-11-11 16:22:54
161
原创 LeetCode 剑指 Offer 06. 从尾到头打印链表(递归详细解析)
LeetCode 剑指 Offer 06. 从尾到头打印链表 题目描述 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 限制: 0 <= 链表长度 <= 10000 方法一:运用递归 先走至链表末端,回溯时依次将节点值加入列表 ,这样就可以实现链表值的倒序输出。 解决思路: 如图: 递推阶段:每次传入head.next,以 head == None(即走过链表尾部节点)为递归终止
2020-11-11 11:50:45
293
原创 LeetCode 剑指 Offer 05. 替换空格(解题思路 Python和C++)
LeetCode 剑指 Offer 05. 替换空格 题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1: 输入:s = "We are happy." 输出:"We%20are%20happy." 限制: 0 <= s 的长度 <= 10000 方法一:遍历添加 在 Python 和 Java 等语言中,字符串都被设计成「不可变」的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串实现。 解决思路:遍历列表 s 中的每个字符 c :
2020-11-04 09:50:46
249
原创 LeetCode 剑指 Offer 04. 二维数组中的查找(深入解析,详细图解)
LeetCode 剑指 Offer 04. 二维数组中的查找 题目描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [
2020-10-31 09:33:28
482
原创 LeetCode刷题__剑指 Offer 03. 数组中重复的数字(亲测有效)
LeetCode 剑指 Offer 03. 数组中重复的数字 题目描述 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 限制: 2 <= n <= 100000 方法一:哈希表(set) 解题思路:利用哈希表解决,当找到重复的数字后
2020-10-28 15:35:16
250
原创 LeetCode刷题_TwoSum(亲测有效)
暴力搜索算法 解题思路:利用两个循环解决 代码 class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: for i in range (len(nums)): for j in range(i+1, len(nums)): if nums[i] + nums[j] == target:
2020-10-23 22:54:16
2138
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅