首页 > 其他分享 >去掉数组中重复的元素。

去掉数组中重复的元素。

时间:2025-01-17 18:21:52浏览次数:1  
标签:重复 元素 int 数组 去掉 include size

#include <stdio.h>
#include <stdlib.h>

// 函数用于移除数组中的重复元素并返回新数组的大小
int removeDuplicates(int* arr, int size, int** newArray) {
    if (size <= 0) return 0;

    // 动态分配内存给新的数组
    *newArray = (int*)malloc(size * sizeof(int));
    if (*newArray == NULL) {
        printf("Memory allocation failed\n");
        exit(1);
    }

    int newSize = 0;
    for (int i = 0; i < size; i++) {
        int isDuplicate = 0;
        // 检查当前元素是否已经在新数组中存在
        for (int j = 0; j < newSize; j++) {
            if ((*newArray)[j] == arr[i]) {
                isDuplicate = 1;
                break;
            }
        }
        if (!isDuplicate) {
            (*newArray)[newSize++] = arr[i];
        }
    }
    return newSize;
}

int main() {
    int array[] = {1, 2, 3, 2, 4, 5, 3, 6, 1};
    int size = sizeof(array) / sizeof(array[0]);
    
    int* newArray;
    int newSize = removeDuplicates(array, size, &newArray);

    // 输出去重后的数组
    printf("Array after removing duplicates: ");
    for (int i = 0; i < newSize; i++) {
        printf("%d ", newArray[i]);
    }
    printf("\n");

    // 释放动态分配的内存
    free(newArray);

    return 0;
}

 

标签:重复,元素,int,数组,去掉,include,size
From: https://www.cnblogs.com/xhu218/p/18677512

相关文章

  • (持续更新)零基础入门 Java 之初始二维数组
    ......
  • 2025-01-17:构成整天的下标对数目Ⅰ。用go语言,给定一个整数数组 hours,其中每个元素表示
    2025-01-17:构成整天的下标对数目Ⅰ。用go语言,给定一个整数数组hours,其中每个元素表示以小时为单位的时间,要求返回一个整数,表示满足条件i<j且hours[i]+hours[j]为24的整数倍的下标对(i,j)的数量。这里,整天被定义为时间持续的时长是24小时的整数倍。例如,1天......
  • 【转】[JavaScript] 数组的 filter 用法
    转自:kimi.aifilter方法用于创建一个新数组,新数组中的元素是通过测试指定条件(由提供的函数实现)的所有元素。以下是其详细用法:基本语法JavaScript复制array.filter(function(currentValue[,index[,array]]){//returntruetokeepelement,falsetoremoveelement......
  • 【转】[JavaScript] 数组的 map 用法
    转自:kimi.aimap方法是数组的一个非常强大的方法,它用于创建一个新数组,新数组中的元素是调用一次提供的函数后的返回值。以下是其详细用法:基本语法JavaScript复制array.map(function(currentValue[,index[,array]]){//returnelementfornewarray,afterexecuting......
  • 【转】[JavaScript] 数组的 push 、shift 、splice
    push方法用于将一个或多个元素添加到数组的末尾,并返回新数组的长度。以下是其详细用法:基本语法JavaScript复制array.push(item1[,item2[,...,itemN]])array:要操作的数组。item1,item2,...,itemN:要添加到数组末尾的元素,可以是一个或多个。返回值返回新数组......
  • 查询、更新数组/嵌套对象
    查询、更新数组/嵌套对象我们可以对对象、对象中的元素、数组、数组中的元素进行匹配查询,甚至还可以对数组和对象相互嵌套的字段进行匹配查询/更新,下面我们从普通匹配开始讲讲如何进行匹配。普通匹配匹配记录中的嵌套字段匹配数组匹配数组匹配数组中元素匹配数组第n项......
  • 双指针+回文数组
    https://codeforces.com/problemset/problem/1610/B#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'usingll=longlong;usingpii=pair<int,int>;constdoublePI=acos(-1);constintN=2e5+10;constintmod=1e9......
  • python 按时间戳删除32×32数组的前2列和后9列(批量处理多个txt)
    前面是单个txt这次批量处理多个txt将所得结果保存到另一个文件夹Python首先处理一个txt内容中多个时间戳,每个时间戳\d{4}-\d{2}-\d{2}\d{2}:\d{2}:\d{2}$对应32行×32列数组,删除数组前2列和后9列。其次采用第一步方法,批量处理某文件夹内所有txt文件,将结果批量存到另一个文件......
  • DRY——不要重复你自己
    假期学习的第二天,并没有进行所谓上机式的学习,只是简单的看了一下《程序员修炼之道》今天了解到了一个叫做DRY的词,DontRepeatYourself!不要重复你自己具体其中的内容也是感觉很抽象,可能是因为自己还没有遇到问题吧,就拿其中的一个方面来说其中提到了我们以后编码要避免重复,这重......
  • 4. rust基础Vec-可变数组
    Vec基本知识定义Vec是一个存储堆分配的数据类型,可以动态改变大小。你可以将元素推送到Vec中,或者从其中删除元素。动态大小不像数组([T;N])那样大小固定,Vec的大小在运行时是可变的。你可以向Vec添加元素,也可以删除元素,甚至将它的容量增加或减少。如何使用Vec1.......