菜鸟笔记
提升您的技术认知

算法笔记

栈高频面试题全解析:7道必刷题目+详细解题思路

7道经典面试题,从基础到单调栈,覆盖括号匹配、路径处理、逆波兰表达式等核心场景,附完整 C++ 实现。 一、有效的括号 简单 LeetCode 20. 有效的括号 题目描述 给定一个只包含 '('、')'、'{'、'}'、'['、']' 的...

赞(0)菜鸟菜鸟阅读(71)

栈与队列:原理详解与 C++ 实现

栈(Stack)和队列(Queue)是计算机科学中最基础、也最常用的两种数据结构。无论是浏览器的”后退”功能、编译器的括号匹配,还是操作系统的任务调度,背后都少不了它们的身影。本文将带你从概念出发,一步步用 C++ ...

赞(0)菜鸟菜鸟阅读(75)

队列高频面试题全解析:7道必刷题目+详细解题思路

队列(Queue)是一种先进先出(FIFO)的数据结构,在算法面试中被广泛考察。本文精选 7 道 LeetCode 高频队列题目,涵盖设计题、单调队列、优先队列等核心场景,每题附解题思路与完整 C++ 实现。 一、用栈实现队列 简单 Lee...

赞(0)菜鸟菜鸟阅读(70)

链表高频面试题全解析:9道必刷题目+详细解题思路

在算法面试中,链表是当之无愧的“高频考点”——它结构简单但灵活性强,能有效考察候选人的指针操作、逻辑思维和边界处理能力。本文精选 9 道链表经典面试题,从基础到进阶,涵盖快慢指针、双指针、递归等核心技巧。每道题都包含详细的解题思路、图解分析...

赞(0)菜鸟菜鸟阅读(73)

深入理解链表:从基础概念到 C++ 实现

链表是计算机科学中最基础、最常用的线性数据结构之一,与数组并称线性结构的 “两大基石”。它弥补了数组在动态插入、删除场景下的性能短板,也是面试中必考的基础考点—— 从基础实现到环、相交等变形问题,考察的核心是对指针操作、逻辑思维和边界条件的...

赞(0)菜鸟菜鸟阅读(77)

KMP 算法优化:从 next 数组到 nextval,让匹配效率再升级

在字符串匹配的经典算法中,KMP 算法凭借其 O (n+m) 的时间复杂度(n 为主串长度,m 为模式串长度)成为首选方案,而next数组是 KMP 算法的核心 —— 它通过记录模式串的最长相等前后缀,避免了主串指针的回溯。但标准next数...

赞(0)菜鸟菜鸟阅读(79)

KMP 算法超详解:从原理到 C++ 实现

前言 KMP 算法是由 Knuth、Morris、Pratt 三位学者共同提出的字符串匹配高效算法,核心解决了传统暴力匹配算法中 “主串指针回溯” 的问题,将时间复杂度优化到线性级别。无论是面试高频考点,还是工程中字符串匹配的实际应用,KM...

赞(0)菜鸟菜鸟阅读(63)

开链式哈希表

简单说明 hashtable适用于需要频繁插入、删除、查找的场合、在这些场合中hashtable都可以常数平均时间完成、然而之所以hashtable的效率这么高、是因为在以上这些操作时都是通过hash function直接定位元素在表中的位...

赞(0)菜鸟菜鸟阅读(903)

惊艳的算法—— 唯一ID生成器snowflake

分布式全局唯一ID生成器 很多场景需要使用全局唯一ID,用来标识唯一一条消息,唯一一笔交易,唯一一个用户,唯一一张图片等等。 传统数据库表的自增主键是很简单的一种实现方式,前提是你没有分库,也没有分表,如果你分表了,id就会重复,失去唯一性...

赞(0)菜鸟菜鸟阅读(870)