Leetcode刷题指南-删除排序数组中的重复数字II (100)

文章目录

    • 1)题目
      • 删除排序数组中的重复数字II
        • 要求:
        • 样例:
    • 2)思路
    • 3)代码
        • 普通方法:

1)题目

删除排序数组中的重复数字II

要求:

给你一个排序数组,删除其中的重复元素,使得每个数字最多出现两次,返回新的数组的长度。
如果一个数字出现超过2次,则这个数字最后保留两个。

样例:

输入:  [1,1,1,2,2,3]
输出: 5
样例解释: 
长度为 5,  数组为:[1,1,2,2,3]

2)思路

将数组的第一个值和第二个值存入新的数组,然后从第三个值开始遍历数组,若遇到和新数组倒数第二个值相等的情况,跳过,否则将数存入数组。

3)代码

普通方法:

class Solution {
public:
	/*
	 * @param nums: An ineger array
	 * @return: An integer
	 */
	int removeDuplicates(vector<int> &nums)
	{

		vector<int> suoyin;
		if (nums.empty())
		{
			return 0;
		}

		suoyin.push_back(nums[0]);
		suoyin.push_back(nums[1]);
		for (int i = 2; i < nums.size(); i++)
		{
			
			if (nums[i] == suoyin[suoyin.size() - 2])
			{
				continue;
			}
			suoyin.push_back(nums[i]);
		}

		nums = suoyin;
		return nums.size();
	}

};

你可能感兴趣的:(2021秋招刷题指南)