首页
学习
活动
专区
工具
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):提供安全、稳定、低成本的云端存储服务,可用于存储和处理各类非结构化数据,如图片、音视频、文档等。产品介绍链接:腾讯云对象存储
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

20分39秒

126-尚硅谷-高校大学生C语言课程-二维数组的基本使用

11分33秒

061.go数组的使用场景

1分11秒

C语言 | 将一个二维数组行列元素互换

4分26秒

068.go切片删除元素

9分14秒

063.go切片的引入

9分32秒

075.slices库的6个操作

26分40秒

晓兵技术杂谈2-intel_daos用户态文件系统io路径_dfuse_io全路径_io栈_c语言

3.4K
5分33秒

JSP 在线学习系统myeclipse开发mysql数据库web结构java编程

领券