删除有序数组中的重复项--力扣
Posted 穿迷彩服的鲨鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除有序数组中的重复项--力扣相关的知识,希望对你有一定的参考价值。
前言
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
提示:以下是本篇文章正文内容,下面案例可供参考
一、示例
1示例
输入:nums = [1,1,2]
输出:2, nums = [1,2]
解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。
2示例
输入:nums = [0,0,1,1,1,2,2,3,3,4]
输出:5, nums = [0,1,2,3,4]
解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。
二、代码解析
1.删除有序数组中的重复项
代码如下(示例):
int removeDuplicates(vector<int>& nums)
{
int n = nums.size();
if (n == 0)
{
return n;
}
int i = 1, j = 1;
for (; i < n; ++i)
{
if (nums[i - 1] == nums[i])
{
continue;
}
else
{
nums[j++] = nums[i];
}
}
return j;
}
2.测试代码
代码如下(示例):
#include<iostream>
#include<vector>
using namespace std;
int removeDuplicates(vector<int>& nums)
{
int n = nums.size();
if (n == 0)
{
return n;
}
int i = 1, j = 1;
for (; i < n; ++i)
{
if (nums[i - 1] == nums[i])
{
continue;
}
else
{
nums[j++] = nums[i];
}
}
return j;
}
int main()
{
vector<int> nums = { 1,1,2 };
cout << removeDuplicates(nums);
return 0;
}
3结果
总结
以上是关于删除有序数组中的重复项--力扣的主要内容,如果未能解决你的问题,请参考以下文章