首页 > TAG信息列表 > 对撞

第80期-基础技巧:双指针 删除有序数组中的重复项

1 问题描述 给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 输入: nums = [1,1,2]输出: 2, nums = [1,2]解释: 函数应该返回

第82期-基础技巧:双指针 移动零

1 问题描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例 1: 输入: [0,1,0,3,12]输出: [1,3,12,0,0] 示例 2: 输入: [0]输出: [0] 初始代码 from typing import List class Solution: def moveZeroes(self, nums: Lis

双指针

三、双指针 双指针算法:指的是在遍历对象的过程中,使用两个相同方向(快慢指针)或者相反方向(对撞指针 )的指针进行扫描,从而达到相应的目的。双指针比较灵活,可以大大降低时间复杂度,可用在数组,单链表等数据结构中。 快慢指针 一快一慢,步长一大一小。例如,是否有环问题(看慢指针是否能追上快