标签:算法

leetcode刷题目录

<p>本文是代码随想录 LeetCode 刷题系列的文章目录,按数组等专题汇总各道题目的题解链接,方便按知识点检索与系统复习。读者可据此快速定位到对应题解文章,循序渐进地完成算法刷题训练。</p>

数据结构与算法刷题之【堆】篇

<p>汇总堆(优先队列)相关的数据结构与算法刷题笔记,包含剑指offer与牛客网高频题目,讲解数据流中位数、TopK等问题的大顶堆与小顶堆解法及Java代码实现,总结堆在求中位数与TopK场景下的应用技巧。</p>

辗转相除以及辗转相减法

<p>讲解辗转相除法(欧几里得算法)与辗转相减法(更相减损法)的原理与适用场景,说明二者在求最大公约数时的联系与区别,并给出完整的Java代码实现与复杂度分析。</p>

约数个数及约数之和

<p>讲解约数个数与约数之和的公式及其证明过程,通过质因数分解推导(a1+1)(a2+1)…与等比求和公式,并结合聪明的燕姿等例题给出实际应用与解题思路,帮助读者掌握数论题目的推导方法。</p>

算数基本定理

<p>讲解算数基本定理的内容,说明任何大于1的自然数都能唯一分解为若干质因子的乘积,并结合X的因子链等例题给出质因数分解的应用方式与解题思路。</p>

快速幂及矩阵快速幂分析及代码实现

<p>讲解快速幂及矩阵快速幂的原理与代码实现,通过将指数不断二分把时间复杂度从O(N)降低到O(logN),并结合斐波那契前n项和等例题给出Java实现与取模处理细节。</p>

动态规划之线性DP

<p>讲解线性动态规划的定义与解题思路,以AcWing数字三角形等模板题为例分析状态定义、初始化与转移方程,总结从上至下和从下至上两种递推方式及滚动数组优化技巧。</p>

LeetCode 374. 猜数字大小(二分)

<p>本文讲解 LeetCode 第 374 题「猜数字大小」,通过 guess 接口反馈缩小范围找出目标数。采用二分查找,注意 l+r 可能溢出 int,先用 long 暂存再转回 int,时间复杂度 O(log n)、空间复杂度 O(1),附 Java 代码。</p>

LeetCode 162. 寻找峰值(二分)

<p>本文讲解 LeetCode 第 162 题「寻找峰值」,在可能含多个峰值的数组中返回任一峰值索引。利用 nums[-1]=nums[n]=-∞ 的性质,通过比较 nums[mid] 与 nums[mid+1] 收缩区间进行二分,达到 O(log n) 时间复杂度,并附最大值解法与 Java 代码。</p>

数据结构与算法刷题之【数论】篇

<p>汇总数论相关的数据结构与算法刷题笔记,讲解数值的整数次方、快速幂、质因数分解等知识点,涵盖剑指offer与蓝桥杯题型并给出Java实现与复杂度分析。</p>

数据结构与算法刷题之【模拟题】篇

<p>汇总模拟题相关的数据结构与算法刷题笔记,讲解根据题意逐步模拟过程的解题方法,涵盖顺时针打印矩阵、螺旋矩阵等经典题型并给出Java实现与细节处理技巧。</p>

数据结构与算法刷题之【滑动窗口】篇

<p>汇总滑动窗口相关的数据结构与算法刷题笔记,讲解窗口扩张与收缩的通用模板,涵盖无重复字符的最长子串、最小覆盖子串等经典题型并给出Java实现与复杂度分析。</p>

数据结构与算法刷题之【双指针】篇

<p>汇总双指针相关的数据结构与算法刷题笔记,讲解快慢指针、左右指针与对撞指针的使用场景,涵盖回文判断、去重、区间等经典题型并给出Java实现与复杂度分析。</p>

数据结构与算法刷题之【队列】篇

<p>汇总队列相关的数据结构与算法刷题笔记,讲解队列基础、队列最大值、滑动窗口等题型,结合剑指offer与力扣题目给出单调队列等Java实现方案与复杂度分析。</p>