Remove Element
删除数组中重复元素,返回新数组长度
#include <stdio.h>
class solution {
public:
int removeElement(int A[], int n, int elem)
{
int i = 0, j = 0;
for (i = 0;i < n;i++)
{
if (A[i] == elem)continue;
A[j] = A[i];
j += 1;
}
return j;
}
};
//在函数调用数组时,需要传入其长度
void printArray(int Array[], int n)
{
//printf("%d\n", sizeof(Array) / sizeof(int));//1
printf("Array: ");
for (int i = 0;i < n;i++)
printf("%d ", Array[i]);
printf("\n");
}
void main() {
solution temp;
int Array[] = { 2, 3, 2, 1, 2, 0 };
//printf("%d\n", sizeof(Array) / sizeof(int));//6
printArray(Array, sizeof(Array) / sizeof(int));
printf("去重长度:%d\n", temp.removeElement(Array, sizeof(Array) / sizeof(int), 2));
printArray(Array, sizeof(Array) / sizeof(int));
/*
Array: 2 3 2 1 2 0
去重长度:3
Array: 3 1 0 1 2 0
*/
}