面试题学习笔记 | MySQL B+ 树索引
本文详细介绍了 MySQL 中使用 B+ 树作为索引结构的原因,分析了其在性能、磁盘 I/O、范围查询等方面的优势,并通过实际示例计算了三层 B+ 树能存储的数据量。此外,还讲解了 B+ 树查询数据的全过程,展示了如何通过二分查找高效定位数据。掌握这些知识有助于加深对 MySQL 索引机制的理解
[LeetCode] 每日一题 2595. 奇偶位数
今天的题目要求统计二进制形式中偶数和奇数下标上值为 1 的个数。通过右移和与运算,我们可以高效地逐位判断,并通过异或操作交替处理奇偶位。该解法时间复杂度为 O(log n),空间复杂度为常数级 O(1)
面试题学习笔记 | MySQL 存储引擎
在 MySQL 中,存储引擎是数据库用来存储数据的底层实现方式。常见的存储引擎有 InnoDB、MyISAM 和 Memory,它们的主要区别体现在性能、数据持久化和锁机制等方面 InnoDB(MySQL 5.5 之后的默认存储引擎) 特点: 支持事务:实现了 4 种标准的隔离级别,并通过 MVCC
[LeetCode] 每日一题 624. 数组列表中的最大距离
这道题目要求在多个排好序的数组中选择两个不同数组的元素,计算最大距离。通过一次遍历维护最小值和最大值,避免暴力解法,优化了时间复杂度。特别注意: 计算最大距离时,需要预先计算并错开数组之间的比较
[LeetCode] 每日一题 2080. 区间内查询数字的频率
本题设计一个数据结构,用于高效查询给定子数组内某个值的频率。通过使用 Map 存储每个值的出现位置,并通过二分查找快速计算区间内该值的频率,避免了暴力遍历,提高了查询效率
[LeetCode] 每日一题 1287. 有序数组中出现次数超过25%的元素
本题考察的是有序数组的特性,要求找到出现次数超过 25% 的元素。由于相同元素一定是连续的,我们可以使用滑动窗口方法维护一个长度为 n / 4 的区间,通过窗口的头尾元素是否相等来判断是否满足条件。这种方法比暴力计数更高效,时间复杂度为 O(n),代码简洁直观
操作系统学习笔记 | 5. 虚拟内存
虚拟内存通过按需加载、页表管理和页面置换技术,实现比物理内存更大的地址空间,提高系统性能。本文介绍了虚拟内存的起因、覆盖与交换技术、局部性原理、请求分页管理、缺页中断处理及性能优化策略,帮助理解现代操作系统如何高效管理内存资源
[LeetCode] 每日一题 1299. 将每个元素替换为右侧最大元素
题目链接 https://leetcode.cn/problems/replace-elements-with-greatest-element-on-right-side 题目描述<
[LeetCode] 每日一题 1706. 球会落何处
题目链接 https://leetcode.cn/problems/where-will-the-ball-fall 题目描述 用一个大小为 m x n 的二维网格 grid 表示一个箱子。你有 n<
[LeetCode] 每日一题 1552. 两球之间的磁力
题目链接 https://leetcode.cn/problems/magnetic-force-between-two-balls 题目描述 在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之