1 问题描述142.环形链表II 2 解题思路判断是否链表是否存在环的方式与141.环形链表一致,当两个指针相遇时,再让一个指针从虚拟头节点开始一
1 问题描述141.环形链表 2 解题思路使用快慢两个指针,fast一次移动两个节点,slow一次移动一个节点,如果链表存在环,那么fast和sl
1 问题描述345.反转字符串中的元音字母 2 解题思路双指针法,使用unordered_set(底层实现为哈希表)来判断是否是元音字母。 3 代码 cpp
1 问题描述75.颜色分类 2 解题思路这里,我们需要三个指针l, r, idx, l用来存放0,r用来存放2,idx用来进行遍历数组。 要注意的是,在遍历数组时
1 问题描述26.删除有序数组中的重复项 2 解题思路采用双指针法,一快一慢,fast用于检测是否重复,slow用来被赋值。 3 代码 cpp #include <vector> using std::vector; class Solution {
1 问题描述18.四数之和 2 解题思路双指针法,i, j = i + 1, l, r; 注意去重和溢出。 3 代码 cpp class Solution { public: vector<vector<int>> fourSum(vector<int>& nums, int target) { std::sort(nums.begin(), nums.end()); vector<vector<int>> res; if (nums.size() < 4) return res; for (int i = 0; i <
1 问题描述19.删除链表的倒数第N个节点 2 解题思路首先设置一个虚拟头节点pre,pre->next = head; 双指针法,考虑使用两个指针fas