两根指针,英文为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