计算机理论

201. Bitwise AND of Numbers Range

Bitwise AND of Numbers Range算法通过位运算求解数字范围内的按位与结果。核心思想是当m和n不相等时,范围内必包含奇偶数,导致低位相与为0。解决方案采用移位操作,将m和n同时右移直到相等,记录移动位数后左移还原,获得最终的按位与结果。

2026年2月5日

202. Happy Number 快乐数

快乐数判断算法通过计算各位数字平方和的循环操作来识别数字是否最终收敛为1。采用Floyd环检测算法,利用快慢指针思想有效检测数值迭代过程中的循环状态。当快慢指针相遇时,若值为1则为快乐数,否则存在循环非快乐数。该方法时间复杂度O(logn),空间复杂度O(1),是检测数字序列循环的经典解决方案。

2026年2月5日

204. Count Primes

统计小于给定数值n的素数个数算法实现。采用埃拉托斯特尼筛法优化版本,通过布尔数组标记合数,从平方数开始避免重复标记,时间复杂度O(n log log n),空间复杂度O(n)。该方法高效处理大规模数据下的素数计数问题。

2026年2月5日

236. Lowest Common Ancestor of a Binary Tree

二叉树最近公共祖先算法详解,提供两种解决方案。基础方法通过递归查找节点位置判断公共祖先,优化解法则利用一次遍历实现高效求解。算法时间复杂度O(n),空间复杂度O(h),适用于二叉树结构中的节点关系分析和树形数据结构处理。

2026年2月5日

3. Longest Substring Without Repeating Characters

解决最长无重复字符子串问题的动态规划算法。通过维护字符最后出现位置数组和当前长度变量,实现O(n)时间复杂度的高效求解。算法核心在于滑动窗口思想,当遇到重复字符时更新窗口起始位置,确保子串始终不包含重复字符,适用于字符串处理和算法优化场景。

2026年2月5日

338. Counting Bits 位计数

Counting Bits位计数问题详解,提供两种高效解决方案。第一种采用分组规律法,以2的N次方为基准分组处理;第二种运用动态规划递推,利用count(N) = count(N>>1) + (N&1)公式实现O(n)时间复杂度。文章深入解析二进制位运算技巧与动态规划优化策略。

2026年2月5日

34. Find First and Last Position of Element in Sorted Array 寻找排序数组目标的开始和结束

在排序数组中查找目标元素的起始和结束位置,采用二分查找算法实现O(log n)时间复杂度。通过两次二分搜索分别定位左端点和右端点,第一次查找目标值的最左侧位置,第二次查找最右侧位置。核心技巧在于边界条件的处理和中点计算方式的调整,确保准确找到目标元素的完整区间范围。

2026年2月5日

37. Sudoku Solver 数独解题器

数独解题器采用深度优先搜索算法实现,通过预处理行、列、九宫格约束条件进行剪枝优化。算法使用回溯机制遍历所有可能解空间,对每个空格尝试填入1-9数字,利用三维数组记录约束状态,有效减少无效搜索路径,确保找到唯一正确解。

2026年2月5日

371. Sum of Two Integers

实现两个整数相加而不使用加减运算符的算法解决方案。通过位运算中的异或操作处理不带进位的相加,利用与运算和左移操作处理进位逻辑。提供循环迭代和递归两种实现方式,深入解析了位运算与基础算术运算的内在联系,适用于算法优化和底层编程场景。

2026年2月5日

413. Arithmetic Slices 算术切片

算术切片问题通过动态规划算法解决,采用一维DP数组优化传统二维解法。核心思路是dp[i]表示以A[i]结尾的算术切片数量,通过判断相邻元素差值相等条件,实现O(n)时间复杂度的高效计算。该方法避免暴力枚举所有子数组,显著提升性能。

2026年2月5日