题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
解答:
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int i=1;//计数器
for(int j=1;nums[j] < nums.size();j++) //大循环
{
if(nums[j]!=nums[j-1])
{
nums[i]=nums[j];
i++;
}
}
nums.erase(nums.begin()+i,nums.begin()+nums.size());
return nums.size();
}
};
vs上实现:
// practice.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include "pch.h"
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
int n; //数组长度
cin >> n;
vector<int> nums(n);
int i = 1;//计数器
for (int l = 0; l < n; l++)
cin >> nums[l];
for (int j = 1; j < n; j++) //大循环
{
if (nums[j] != nums[j - 1])
{
nums[i] = nums[j];
i++;
}
}
nums.erase(nums.begin() + i, nums.begin() + nums.size());
for(int k=0;k<i;k++)
cout << nums[k]<<endl;
cout << "个数:" <<i<< endl;
}
注意点:
1、长度函数
- length()函数 c++中,length()只是用来获取字符串的长度。 例如:string str = “asdfghjkl” ,则,str.length() = 9。
- size()函数 c++中,在获取字符串长度时,size()函数与length()函数作用相同。 size()函数还可以获取vector类型的长度。 例如:vector < int> num(15,2) , 则,num.size() = 15。
- sizeof()运算符 sizeof()运算符用来求对象所占内存空间的大小。一般主要用在char上面!不要瞎用谢谢自己。
2.vector容器,明天整理一下这块内容。
今天的排名是29万。
感谢我的朋友们对我的指点。