Day01
题目:
给定一个排序数组,你需要删除重复出现的元素,使得每个元素只出现一次,返回移除重复元素之后的数组长度。
题目要求很清晰,比如一个数组
a[3] = { 1,1,2 };
这个数组长度为3,执行代码后返回值为2,元素被修改为1、2。
我们要注意到,数组作为参数传参的时候,是以“引用”的方式传递,在函数中修改数组的时候,输出的数组会发生改变。
实现这个功能:
#include<iostream>
using namespace std;
class solution
{
public:
solution();
~solution();
int DR(int* array, int len);
};
int solution::DR(int array[], int len)
{
if (len <= 1)
return len;
int pos = 0;
for (int i = 0; i < len - 1; i++)
{
if (array[i] != array[i + 1])
{
array[++pos] = array[i + 1];
}
}
return pos + 1;
}
void main()
{
int a[10] = { 1,2,3,4,5,5,5,6,6,7 };
int length = sizeof(a) / sizeof(int);
int b;
solution test;
cout << length << endl;
b = test.DR(a, length);
cout << b << endl;
}
solution::solution()
{
}
solution::~solution()
{
}