删除数组中重复的数据

原创 2015年07月06日 22:40:06

一个非降序的数组,如果数组中有重复的数据,只保留一个,其余删除。

注: 如果数组是乱序的,可以现将数组进行非降序的排序(可以在C++中直接利用STL里的排序函数直接处理),这里只编写了非降序情况下的代码。

#include <stdio.h>
#include <stdlib.h>
int a[] = {1,2,2,3,4,5,5,5,6,7,8,8,9,10};
int ArrayRepDel(int [],int );
void show(int [],int );

int main()
{
    int N = sizeof(a)/sizeof(int);
    printf("Before the repeat delete:\n");
    show(a,N);
    int M = ArrayRepDel(a,N);
    printf("The size of the new array M=%d\n",M);
    printf("The new array:\n");
    show(a,M);
    return 0;
}

int ArrayRepDel(int a[],int n)
{
    int i,j;
    for(i = 0,j = 1;j < n;)
    {
        while(a[i] == a[j])
        {
            j++;
        }
        a[++i] = a[j];
        j++;
    }
    return (i+1);
}

void show(int a[],int n)
{
    int i;
    for(i = 0;i < n;i++)
        printf("%3d",a[i]);
    printf("\n");
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java基础数据遍历(4)删除数组中重复数字

题目要求: 给定一个整数一维数组,其中可能有多个数字重复,请将多余重复的数字删除保留唯一一个,生成新的数组。解题思路: 1.遍历整个数组,同时创建一个等长度的标记数组。将数组中的每个数与该数前面所...

c++ hash_set 删除原数组重复数据,且不改变原数组顺序

在中兴笔试中,有一题目要求,去除正整数序列数组中的重复元素,且不改变元素原来位置,例如 arr [] = {1,2,3,4,1,2,3,4} 输出为{1,2,3,4}.再例如arr[] = {1,2,...

LeetCode | Subsets II(带有重复数据的数组的子集)

Given a collection of integers that might contain duplicates, S, return all possible subsets. Not...

JS-数组去除重复数据算法

在JS中经常会遇到去除数组中重复数据的需求,在此介绍四种算法以实现JS数组去重的功能.1.速度最快算法:对象键值对法实现思路:新建一js对象以及新数组,遍历传入数组时,判断值是否为js对象的键,不是的...

JAVA数组去除重复数据

前一段时间被面试问到:如果一个数组中有重复元素,用什么方法可以去重?一时间会想到用一种方法,但是后来查阅资料后发现,有好多方法可以实现,现在就总结一下,比较简单的几种。一.用List集合实现 i...

数组重复数据分组算法 Objective-C实现

将进行分组: 3 ,3 ,5 ,4 ,4 ,9 ,9 ,9 ,8 ,99 ,88 ,99 分组成: (3 3) (5) (4 4) (9 9 9) (8) (99 99) (88) @prope...

java不重复的随机输出数组中的全部数据(做更新)

题目意思:在已经有数据的一个数组中,随机的输出数组中的全部数据,但是不能重复的输出初来。一下是我实现的方式:要是有更好的方法小伙伴们可在评论区里面留下:package com.quit;import ...

Vue.js之在数组中插入重复数据

1、在默认的情况下,Vue.js默认不支持往数组中加入重复的数据。可以使用track-by="$index"来实现。 2、不使用track-by="$index"的数值插入,数组不支持重复数据的插入 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)