2021-10-15:删除数组中指定重复的数

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;	
}

Guess you like

Origin blog.csdn.net/xiaoxiaoguailou/article/details/120783108