
双指针
俺叫西西弗斯
找份前端开发工作
都柏林理工大学博士拟录取(没钱读)
李莫瑞克大学硕士在读(主持爱尔兰软件研究中心)
重庆2022优秀毕业生
展开
-
[LeetCode]剑指 Offer 22. 链表中倒数第k个节点
算法标签:链表,快慢指针题目简叙思路快慢指针,快指针走i,慢指针走size-i,刚好就是对应的倒数第i个代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode原创 2020-08-03 00:18:09 · 144 阅读 · 0 评论 -
[LeetCode]面试题 02.02. 返回倒数第 k 个节点
算法标签 双指针 链表题目简叙思路快慢指针的方式使用两个初始指针指向头部指针a向后移动K个位置从现在开始ab指针都向后移动到底此时b移动了len-a的长度这样b就移动到了len-a的位置即相当于移动到了倒数第K个位置代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x),原创 2020-07-30 17:02:22 · 198 阅读 · 0 评论 -
[LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
算法标签 双指针题目简叙思路前后指针使用指针判断奇数偶数,再进行交换有点类似于快速排序中哨兵探路的思路快慢指针fast一直走 遇到吻合的数就和low交换 low++到下一个数去代码前后指针class Solution {public: vector<int> exchange(vector<int>& nums) { ios::sync_with_stdio(false); int l=0,r=原创 2020-07-28 22:31:07 · 146 阅读 · 0 评论 -
[LeetCode]392. 判断子序列
算法标签 双指针题目简叙代码class Solution {public: bool isSubsequence(string s, string t) { int l=0,r=0; while(l<s.size()&&r<t.size){ if(s[l]==t[r])l++; r++; } return l==s.size(); }};原创 2020-07-27 18:20:02 · 152 阅读 · 0 评论 -
[LeetCode]剑指 Offer 04. 二维数组中的查找
算法标签 双指针题目简叙思路线行查找的思路一行从左到右递增一列从上到下递增那么我们依据性质 从第0行的最右侧开始就检查如果目标值比这个值大,那么就到下一行如果目标值比这个值小,那么久到前一个代码暴力class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { if(matrix.size()==0||mat原创 2020-07-26 12:57:05 · 183 阅读 · 0 评论 -
[LeetCode]167. 两数之和 II - 输入有序数组
算法标签 双指针题目简叙思路使用双指针达到0(n)代码class Solution {public: vector<int> twoSum(vector<int>& numbers, int target) { int l=0,r=numbers.size()-1; while(l<=r){ int mid = numbers[l]+numbers[r]; if(mid原创 2020-07-20 14:11:58 · 146 阅读 · 0 评论