力扣-80 删除有序数组中的重复项 II
题目描述
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
示例
示例 1:
输入:nums = [1,1,1,2,2,3]
输出:5, nums = [1,1,2,2,3]
解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。 不需要考虑数组中超出新长度后面的元素。
示例 2:
输入:nums = [0,0,1,1,1,1,2,3,3]
输出:7, nums = [0,0,1,1,2,3,3]
解释:函数应返回新长度 length = 7, 并且原数组的前五个元素被修改为 0, 0, 1, 1, 2, 3, 3 。 不需要考虑数组中超出新长度后面的元素。
源代码
思路:
采用双指针
快指针遍历整个数组,慢指针为修改后数组的长度
class Solution {public:int removeDuplicates(vector<int>& nums) {int n = nums.size();if(n <= 2){return n;}int sp = 2;for(int fp = 2; fp < n; fp++){if(nums[fp] != nums[sp - 2]){nums[sp++] = nums[fp];}}return sp ;}
};
复杂度分析:
- 时间复杂度:O(n),
- 空间复杂度:O(1).
力扣-80 删除有序数组中的重复项 II相关推荐
- 80. 删除有序数组中的重复项 II
80. 删除有序数组中的重复项 II Ideas 没啥技术含量,从后往前,check+delete. Code Python class Solution:def removeDuplicates(s ...
- 力扣 26.删除有序数组中的重复项
题目描述: 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度.元素的 相对顺序 应该保持 一致 . 由于在某些语言中不能改变数组 ...
- 14. Leetcode 80. 删除有序数组中的重复项 II (数组-同向双指针-快慢指针)
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度.不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条 ...
- leetcode 80. 删除有序数组中的重复项 II
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的 ...
- 2022-2-11 80.删除有序数组中的重复项II
第一版: 问题在于,检测不到的时候赋值一次,检测到了赋值两次, 检测不到的情况会出现于数组中的数据发生了变化的时候. #include<iostream> #include<vect ...
- 2021-05-11(80. 删除有序数组中的重复项 II)
没想到双指针. class Solution {public int removeDuplicates(int[] nums) {int n=nums.length;if(n<=2){retur ...
- Leecode刷题【1数组专题4】80. 删除排序数组中的重复项II (以及通用解法)
Leecode刷题 [1数组专题4]80. 删除排序数组中的重复项II (以及通用解法) 题目: 思路 双指针法: (错误代码) 正解: 通用解法: 题目: 给你一个有序数组 nums ,请你 原地 ...
- 80. 删除排序数组中的重复项 II golang
80. 删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O ...
- 力扣 26.删除有序数组中的重复元素
文章目录 题目 思路 AC代码 收获 题目 删除有序数组中的重复元素 思路 快慢指针.快指针不断向前走.判断快指针所指的数与快指针前面的数是否相等,如果相等就说明是重复的,要继续向后移动,如果不相等, ...
- LeetCode 80. 删除排序数组中的重复项 II
1. 题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完 ...
最新文章
- 这是我转贴的strcpy函数与strncpy函数的比较,其中有些错误,建议大家还是看msdn,要好的多
- java基础之构造方法
- .NET Compact Framework下的单元测试
- STL学习之一(栈(statck))
- 前端使用linux命令更新项目生产包与测试包命令
- Only digits (0-9) can be put inside [] in the path string: formData.XXX
- instanceof的用法①
- UVA - 1589 ​​​​​​​Xiangqi
- oracle将一个表数据更新时间,Oracle批量更新,将一个表的数据批量更新另一表
- Centos7 修改主机名
- 大数据实效_普洱市以“大数据”思维全面提升新时代干部管理监督实效
- 机器人码垛手持式编程_码垛机器人编程软件图解教程
- 电脑用户计算机名文件夹,电脑用户名文件夹名称更改
- word通配符,查找与替换
- 搜狗浏览器在高速模式下,右键点击才会出现“审查元素”
- linux系统盘的概念,了解linux系统硬盘分区概念-SELinux入门-linux网卡配置及参数学习_169IT.COM...
- 酷狗android平板,安卓平板车载共享 体验酷狗音乐HD版
- python--第六章 python函数 装饰器 类 对象
- 22协方差矩阵 matlab,协方差协方差矩阵【matlab实例】
- 立创开源 | 高压可控硅驱动控制板