AI算法 每日算法 — 使用java实现BM字符串搜索:Boyer-Moore坏字符与好后缀规则 引言 Boyer-Moore(BM)算法是字符串匹配领域中最快的实用算法之一。与从左向右逐字符比较的朴素方法不同,BM算法从模式串的末尾开始比较,并利用预处理的坏字符规则(Bad...
AI算法 每日算法 — 使用java实现欧几里得算法:辗转相除法与扩展欧几里得求模逆元 引言 欧几里得算法(Euclidean Algorithm)是数论中最古老、最优雅的算法之一,距今已有两千多年的历史。它用于高效计算两个整数的最大公约数(Greatest Common Divisor,...
AI算法 每日算法 — 使用java实现Miller-Rabin:概率性素数测试与二次探测定理 算法概述 Miller-Rabin素性测试是一种概率性算法,用于判断一个大整数是否为素数。由Gary Miller于1976年提出理论基础,Michael...
AI算法 每日算法 — 使用java实现FFT:快速傅里叶变换与多项式乘法加速 算法概述 快速傅里叶变换(Fast Fourier Transform,FFT)是离散傅里叶变换(DFT)的高效算法,由Cooley和Tukey于1965年提出。FFT将DFT的时间复杂度从O(n²)降至O(n log...
AI算法 每日算法 — 使用java实现斜率优化DP:凸包技巧与动态规划转移加速 算法概述 斜率优化动态规划(Slope Trick / Convex Hull Trick for DP)是一种用于优化特定形式动态规划转移的高级技巧。当DP转移方程形如: dp[i] = min{dp[j] + cost(j, i)} for j < i...