双指针
Lev_i
随便记住我,然后忘了吧
展开
-
剑指 Offer 22.链表中倒数第k个节点
剑指 Offer 22.链表中倒数第k个节点贴个题目:贴个示例:解题思路:思路一:使用指针数组储存既然题目要求倒序输出某一个节点,那我们可以用一个指针数组储存所有的指针,然后从尾部返回第k个即可。思路一代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* getKt原创 2021-09-02 09:15:42 · 64 阅读 · 0 评论 -
611.有效三角形的个数
611.有效三角形的个数贴个题目:贴个示例:解题思路:这道题目,涉及了一个初二的数学知识:三角形的两边之和大于第三边:即:a+b>c也就是这一道题,我们需要做的是,使用两条边,找到第三条边是符合这个条件的,就可以被称为“有效三角形”综上,我们可以排序之后使用双指针,left指针指向第一条边,right指向第二条边,然后寻找符合条件的第三条边,通过移动left和right指针,就可以得出所有的“有效三角形”。特殊情况:当数组的长度小于3的时候,都不能组成三角形,更别提“有效三角原创 2021-08-30 07:33:52 · 499 阅读 · 0 评论 -
881. 救生艇
881. 救生艇贴个题目:贴个示例:解题思路:这一道题用到的编程思想是:贪心算法和二分算法。由于每艘船只能载两个人,因此我们只需要分析最重的人和最轻的人能不能做同一艘船就可以。基于以上的思想,我们要将people数组进行排序,然后比较最轻和最重的人能不能载同一艘船,如果可以,就到下一对,如果不可以,就证明最重的人得自己做一艘船。我们可以使用双指针,left指向轻的那边,right指向重的那边,然后如果轻+重小于限制重量,我们就left和right同时向中间移动,否则就只移动right,一边原创 2021-08-26 16:08:00 · 96 阅读 · 0 评论 -
443. 压缩字符串
443. 压缩字符串贴个题目:贴个示例:解题思路:这一题主要思想就是双指针1、left定位当前数据,然后right就往后找,如果字符与left相同,那就right就向后移动。2、统计相同字符结束之后,更新left指针到right处,然后right要更新到left右边一个那么根据题目要求,我们还需要index记录每一次压缩字符之后的坐标,然后复制当前正在统计的字符以及他的数量...原创 2021-08-22 23:42:59 · 62 阅读 · 0 评论