算法题(18):删除有序数组中的重复项2

审题:

需要原地删除数据让数组中一个数据只能出现最多2次,并返回修改后的数组的数据个数

(不会有空数组情况)

思路:

双指针:我们用left指向下一个需要插入数据的位置,right去遍历数组

left数据的个数小于2时,我们就可以插入数据到left中,若数据与前一个相同则cou++,不同则让cur等于一。

left数据的个数大于等于二则直接访问下一个数据,直到遇到不同的数据

解题:

(1)left为什么从1开始,cou为什么从1开始?

其一,第一个数据是可以直接插入的,所以直接从索引为1的位置开始插入数据,而因我们已经有一个数据默认插入了,所以cur就是初始化为1

其二,若不让left初始化为1,那么在left为0时无法访问left-1位置,会越界

(2)left表示的是待插入数据的位置,所以判断新数据需要和left-1的位置数据去判断

80. 删除有序数组中的重复项 II - 力扣(LeetCode)

相关推荐
Forever Nore2 小时前
学完C语言力扣第一题做不来正常吗
数据结构·算法
旖旎夜光5 小时前
LeetCode 11:盛最多水的容器(双指针问题) —— 题解
数据结构·c++·算法·leetcode·双指针
不一样的故事1267 小时前
芯片设计是一个高度复杂、分工精细的系统工程
数据结构·经验分享
梁辰兴7 小时前
软件工程:面向数据结构的设计方法
数据结构·软件工程·梁辰兴·面向数据结构的设计方法·jackson方法·warnier方法·方法比较
白狐_7988 小时前
408数据结构第7章:查找②——顺序、折半、分块查找秒杀 + 真题
数据结构·算法
hold?fish:palm9 小时前
链表的基本原理和实现(C++版本)
数据结构·c++·链表
码完就睡10 小时前
数据结构——树、二叉树基础概念
数据结构·算法
疯狂打码的少年11 小时前
【数据结构】栈:定义、顺序栈与链式栈
数据结构·笔记
wabs66612 小时前
关于图论【最短路径之Bellman_ford 算法|卡码网94.城市间货物运输的思考】
数据结构·算法·图论·卡码网·bellman_ford·求最短路径
今日无bug12 小时前
JS 数据类型 + 内存分配:从 8 种类型到栈堆模型
javascript·数据结构