2021年10月15日
学习内容:删除数组中指定重复的数
例如:45 54 45 45 46 45 21 45删除这些数中所有的45
代码示例(1) i = 0, j = -1;
时间复杂度:O(n)
#include <stdio.h>
int Delete(int arr[], int len, int value)
{
if(arr == NULL || len <= 0) return;
int j = -1;
for(int i = 0; i < len; i++)
{
if(arr[i] != value)
{
j++;
arr[j] = arr[i];
}
}
return j + 1;
}
void Show(int arr[], int len)
{
if(arr == NULL || len <= 0) return;
for(int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int arr[] = {
45, 54, 45, 45, 46, 45, 21, 45};
int len = sizeof(arr) / sizeof(arr[0]);
len = Delete(arr, len, 45);
Show(arr, len);
return 0;
}
代码示例(2)i = 0, j = 0;
时间复杂度:O(n)
int Delete(int arr[], int len, int value)
{
if(arr == NULL || len <= 0) return;
int j = 0;
for(int i = 0; i < len; i++)
{
if(arr[i] != value)
{
arr[j] = arr[i];
j++;
}
}
return j;
}