leetcode解题方法
2026/5/21 23:37:19 网站建设 项目流程

双指针法:适用于有序数组去重、两数之和等问题。通过左右指针减少时间复杂度至O(n)。

示例代码:

c复制插入

int removeDuplicates(int* nums, int numsSize) { if (numsSize == 0) return 0; int slow = 0; for (int fast = 1; fast < numsSize; fast++) { if (nums[fast] != nums[slow]) { nums[++slow] = nums[fast]; } } return slow + 1; }

复制插入

链表问题

虚拟头节点:简化删除节点等操作,避免处理头节点特殊情况。

快慢指针:用于检测环或找中点。

动态规划

明确状态转移方程,如斐波那契数列用迭代而非递归避免堆栈溢出:

c复制插入

int fib(int n) { if (n < 2) return n; int dp[3] = {0, 1, 1}; for (int i = 2; i <= n; i++) { dp[2] = dp[0] + dp[1]; dp[0] = dp[1]; dp[1] = dp[2]; } return dp[2]; }

复制插入

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询