初始代码,可根据自己的需求进行修改
#include<stdio.h>
int removeDuplicates(int *nums,int numsSize);
int main(){
int num[5] = {1,1,1,1,1};
int length = removeDuplicates(num,5);
printf("%d\n",length);
for(int i=0;i<length;i++){
printf("%d ",num[i]);
}
return 0;
}
一、数组元素无序删除
int removeDuplicates(int *nums,int numsSize){
if(!nums||numsSize==0){
return 0;
}
int i = 0;
for (i = 0; i < numsSize; i++) {
for (int j = i + 1; j < numsSize; j ++) {
if (nums[i] == nums[j]) {
for (int k = i; k < numsSize - 1; k ++) {
nums[k] = nums[k + 1];
}
numsSize --;
j = i;
}
}
}
return numsSize;
}
二、数组元素有序删除
int removeDuplicates(int *nums,int numsSize){
if(!nums||numsSize==0){
return 0;
}
int j = 1;
int i = 1;
for(j;j<numsSize;j++){
if(nums[j]!=nums[j-1]){
nums[i] = nums[j];
i++;
}
}
return i;
}
|