二分查找的通用模型与常见错误
二分查找的通用模型与常见错误 在算法面试中,二分查找(Binary Search) 是一个非常重要的知识点。许多人在实际应用时会遇到边界处理的问题,导致程序出现 bug。本文将总结二分查找的通用模型,并分析常见错误。 ...
二分查找的通用模型与常见错误 在算法面试中,二分查找(Binary Search) 是一个非常重要的知识点。许多人在实际应用时会遇到边界处理的问题,导致程序出现 bug。本文将总结二分查找的通用模型,并分析常见错误。 ...
数组求和问题(N-Sum)是算法面试中经久不衰的经典题型。从最基础的 Two Sum 到进阶的 kSum,其核心本质往往殊途同归。本文将以资深工程师的视角,系统梳理 2Sum、3Sum、3Sum Closest 及 4Sum 的解题演进之路,探讨如何通过双指针与剪枝策略将时间复杂度压榨至极限。 ...

位操作 (Bit Manipulation) 往往能通过令人惊叹的技巧带来性能的极致提升。其中,计算一个整数二进制表示中 1 的个数(即 Population Count 或 Hamming Weight)是一个非常经典的问题。 最朴素的解法是循环检查每一位(Loop & Shift),其时间复杂度固定为 $O(n)$。然而,Kernighan’s Algorithm 提供了一种更为优雅且高效的思路,将时间复杂度优化至 $O(k)$($k$ 为 set bit 的个数):跳过所有的 0,只处理 1。 ...
在 零钱兑换 II (Coin Change II) 问题中,我们拥有一组不同面额的硬币(coins)和一个目标金额(amount)。任务是计算出凑出该目标金额的所有不同组合数。 ...
在链表操作中,快慢指针 (Fast & Slow Pointers) 是一种极其经典且优雅的技巧。它主要用于解决链表中的环路检测、中点寻找等问题。其背后的理论基础通常被称为 Floyd 判圈算法 (Floyd’s Cycle-Finding Algorithm),有时也形象地被称为“龟兔赛跑算法”。 ...