两根指针,英文为two pointers ,所以又被称为双P算法。 同向双指针问题 1.window sum问题 例给定数组[1, 2, 7, 8, 5],给定一个长度为k的窗口,求此窗口内的数据元素的和。比如1 + 2 + 7 = 10, 2 + 7 + 8 = 17, 7 + 8 + 5 = 2 ...
                            
                            
                                分类:
其他好文   时间:
2020-11-02 09:54:07   
                                阅读次数:
33
                             
                         
                    
                        
                            
                            
                                题目链接:925. 长按键入 难易程度:【简单】 思路:双指针。题目还是比较简单的,比较容易想到。最后判断下i是否等于name.length,容易忽略。看了下官方解答,也是一样的思路。 代码: /** * @param {string} name * @param {string} typed *  ...
                            
                            
                                分类:
其他好文   时间:
2020-10-21 21:23:53   
                                阅读次数:
19
                             
                         
                    
                        
                            
                            
                                **题目链接:**https://leetcode-cn.com/problems/squares-of-a-sorted-array/ 分析: 双指针。 Python class Solution: def sortedSquares(self, A: List[int]) -> List[int ...
                            
                            
                                分类:
编程语言   时间:
2020-10-18 09:27:17   
                                阅读次数:
21
                             
                         
                    
                        
                            
                            
                                
                    // 双指针 var findContinuousSequence = function(target) { let res = [] let left = 1 let right = 2 while (left < right) { let sum = (left + right) * (righ ...
                            
                            
                                分类:
Web程序   时间:
2020-10-10 17:08:08   
                                阅读次数:
18
                             
                         
                    
                        
                            
                            
                                
                    三数之和--LeetCode015 题目描述: 知识点:哈希表,对撞双指针 三重循环遍历nums数组。时间复杂度是O(n ^ 3),其中n为数组nums的长度。空间复杂度是O(1)。 JAVA代码: package com.zhizhu.test; import java.util.ArrayLis ...
                            
                            
                                分类:
其他好文   时间:
2020-10-08 19:39:17   
                                阅读次数:
14
                             
                         
                    
                        
                            
                            
                                
                    字符串的翻转问题 344 反转字符串 双指针做法,反转问题的经典的解决方案,利用两个指针,每次相对移动,移动过程中交换,直到指针相遇。 public void reverseString(char[] s) { if(s.length == 0) return; int l = 0, r = s.l ...
                            
                            
                                分类:
其他好文   时间:
2020-09-17 16:45:26   
                                阅读次数:
23
                             
                         
                    
                        
                            
                            
                                LeetCode 633 平方数之和 题目描述: 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。 逆向双指针逼近 对于给定的整数target,可能存在的两个整数a、b均不可能大于floor(sqrt(c)), 因此在[0, floor(sqrt(c))] ...
                            
                            
                                分类:
其他好文   时间:
2020-08-31 13:07:18   
                                阅读次数:
45
                             
                         
                    
                        
                            
                            
                                
                    // 初始化 快指针和慢指针 ListNode slow = head; ListNode fast = head; /** * Change this condition to fit specific problem. * 在这里避免空指针错误 **/ while (slow != null & ...
                            
                            
                                分类:
其他好文   时间:
2020-08-20 18:57:19   
                                阅读次数:
66
                             
                         
                    
                        
                            
                            
                                
                    快速选择原理如下,选择第k大的数字: 我们在快速选择的时候,也同样用了划分的思想,随机选择一个中轴,双指针i, j,指针i从左往右扫描,指针j从右往左扫描,如果i < j 则进行交换,并且继续循环,直到遇到中轴,这时候我们的i和j均为中轴(理由:因为i,j相等),如果数字在中轴的左边,则向左递归,如 ...
                            
                            
                                分类:
其他好文   时间:
2020-08-17 17:30:16   
                                阅读次数:
98
                             
                         
                    
                        
                            
                            
                                
                    题目描述 输入两个链表,找出它们的第一个公共节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3 输出:Refere ...
                            
                            
                                分类:
其他好文   时间:
2020-08-10 19:51:47   
                                阅读次数:
76