
快慢指针/双指针
快慢指针/双指针,由由易到难,循序渐进
西柚与蓝莓
好了阿鹏
展开
-
594. 最长和谐子序列 滑动窗口
数组的子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。,请你在所有可能的子序列中找到最长的和谐子序列的长度。和谐数组是指一个数组里元素的最大值和最小值之间的差别。最长的和谐子序列是 [3,2,2,2,3]现在,给你一个整数数组。原创 2024-09-29 20:22:13 · 227 阅读 · 0 评论 -
面试题 02.07. 链表相交 双指针
从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。在 B 中,相交节点前有 1 个节点。相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。原创 2024-09-22 13:41:11 · 400 阅读 · 0 评论 -
面试题 01.06. 字符串压缩 双指针
若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。要先判断需不需要压缩成数字。原创 2024-09-21 08:27:57 · 214 阅读 · 0 评论 -
922. 按奇偶排序数组 II 双指针 力扣
左右指针0和n-1,左指针一次前进2格,永远在偶数位,右指针一次后退2格,永远在奇数位。[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。任何满足上述条件的数组作为答案。对数组进行排序,以便当。给定一个非负整数数组。原创 2024-09-20 20:58:09 · 413 阅读 · 0 评论 -
905. 按奇偶排序数组 双指针
4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。905. 按奇偶排序数组。原创 2024-09-20 20:19:15 · 183 阅读 · 0 评论 -
力扣 短串匹配长串 python 双指针
"leeto" 没有在 "leetcode" 中出现,所以返回 -1。字符串的第一个匹配项的下标(下标从 0 开始)。第一个匹配项的下标是 0 ,所以返回 0。"sad" 在下标 0 和 6 处匹配。原创 2024-09-20 19:31:07 · 379 阅读 · 0 评论 -
1089. 复写零 力扣 python 双指针 for循环作用域
调用函数后,输入的数组将被修改为:[1,0,0,2,3,0,0,4],请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。调用函数后,输入的数组将被修改为:[1,2,3]进行上述修改,不要从函数返回任何东西。给你一个长度固定的整数数组。原创 2024-09-20 19:04:34 · 293 阅读 · 0 评论 -
LCP 18. 早餐组合 双指针 排序求组合
解释:小扣有 8 种购买方案,所选主食与所选饮料在数组中对应的下标分别是: 第 1 种方案:staple[0] + drinks[2] = 2 + 5 = 7;第 5 种方案:staple[1] + drinks[3] = 1 + 1 = 2;解释:小扣有 6 种购买方案,所选主食与所选饮料在数组中对应的下标分别是: 第 1 种方案:staple[0] + drinks[0] = 10 + 5 = 15;第 6 种方案:staple[2] + drinks[2] = 5 + 2 = 7。原创 2024-09-20 12:42:48 · 755 阅读 · 0 评论 -
680. 验证回文串 II 力扣 双指针 python
如果字符串不是回文,则使用双指针法从两端向中间遍历字符串。是否本身就是回文字符串,如果是,则直接返回。是否能成为回文字符串:如果能,返回。你可以删除字符 'c'。可以从中删除一个字符。原创 2024-09-19 22:46:07 · 339 阅读 · 0 评论 -
2108. 找出数组中的第一个回文字符串 双指针 python
的定义为:如果一个字符串正着读和反着读一样,那么该字符串就是一个。注意,"racecar" 也是回文字符串,但它不是第一个。第一个也是唯一一个回文字符串是 "racecar"。如果不存在满足要求的字符串,返回一个。2108. 找出数组中的第一个回文字符串。不存在回文字符串,所以返回一个空字符串。第一个回文字符串是 "ada"。,找出并返回数组中的。原创 2024-09-19 21:54:39 · 237 阅读 · 0 评论 -
2000. 反转单词前缀 双指针 力扣 python
反转从下标 0 到下标 3(含下标 3)的这段字符,结果字符串是 "dcbaefd"。反转从下标 0 到下标 3(含下标 3)的这段字符,结果字符串是 "zxyxxe"。无需执行反转操作,结果字符串是 "abcd"。"z" 第一次也是唯一一次出现是在下标 3。"d" 第一次出现在下标 3。"z" 不存在于 word 中。2000. 反转单词前缀。,则无需进行任何操作。原创 2024-09-19 21:48:22 · 296 阅读 · 0 评论 -
1768. 交替合并字符串 力扣 双指针
开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。注意,word2 比 word1 长,"rs" 需要追加到合并后字符串的末尾。注意,word1 比 word2 长,"cd" 需要追加到合并后字符串的末尾。合并后: a p b q r s。合并后: a p b q c d。合并后: a p b q c r。1768. 交替合并字符串。原创 2024-09-19 21:39:18 · 246 阅读 · 0 评论 -
917. 仅仅反转字母 双指针 ‘A‘ <= i <= ‘z‘的区分
虽然这种方式在一些其他编程语言中可能可行,但在 Python 中,这样的表达式会按照从左到右的顺序分别判断。的布尔值结果,然后再对这两个布尔值进行比较,而不是像预期的那样判断字符是否在字母范围内。这样的内置方法来正确判断一个字符是否为字母。在 Python 中不能使用。来判断一个字符是不是字母。,这两个条件分别会产生。,从而产生错误的判断。原创 2024-09-19 21:32:42 · 462 阅读 · 0 评论 -
27. 移除元素 快慢指针 python l力扣
从0开始,开始遍历,如果是我们想要的数字(不为3),就赋值给nums[ slow ],并把slow+1。这样依次覆盖就是会形成想要的答案,最后几位的数字是乱的没关系,用Python的选手可以用nums[0:slow],不过也不需要,因为不需要返回数组,只用返回slow就行。你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。原创 2024-07-17 12:58:50 · 416 阅读 · 0 评论