首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用C语言从数组中删除重复项

的方法有多种,下面是一种常见的实现方式:

代码语言:txt
复制
#include <stdio.h>

// 函数声明
int removeDuplicates(int arr[], int n);

int main() {
    int arr[] = {1, 2, 2, 3, 4, 4, 5};
    int n = sizeof(arr) / sizeof(arr[0]);

    // 调用函数删除重复项
    n = removeDuplicates(arr, n);

    // 打印删除重复项后的数组
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}

// 函数定义
int removeDuplicates(int arr[], int n) {
    if (n == 0 || n == 1) {
        return n;
    }

    int temp[n];
    int j = 0;

    for (int i = 0; i < n - 1; i++) {
        if (arr[i] != arr[i + 1]) {
            temp[j++] = arr[i];
        }
    }

    temp[j++] = arr[n - 1];

    for (int i = 0; i < j; i++) {
        arr[i] = temp[i];
    }

    return j;
}

这段代码使用了一个临时数组temp来存储删除重复项后的数组。遍历原始数组,如果当前元素与下一个元素不相等,则将当前元素存入temp数组中。最后将temp数组中的元素复制回原始数组,并返回删除重复项后的数组长度。

这种方法的时间复杂度为O(n),空间复杂度为O(n)。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。

  • 腾讯云云服务器(CVM):提供弹性计算能力,可根据业务需求灵活选择配置,支持多种操作系统,适用于各类应用场景。产品介绍链接:腾讯云云服务器
  • 腾讯云对象存储(COS):提供安全、稳定、低成本的云端存储服务,可用于存储和处理各类非结构化数据,如图片、音视频、文档等。产品介绍链接:腾讯云对象存储
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券