题解 | #序列中整数去重#

序列中整数去重

https://www.nowcoder.com/practice/6564a2f6e70f4153ad1ffd58b2b28490

#include <stdio.h>//用一个数组,重复的数变为-1,打印时不为-1的数就打印
#include <stdlib.h>

void Distincy(int n)
{
    int* a = malloc(sizeof(int) * n);
    int sum = 0;
    for(int i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    //时间复杂度为O(N^2),我感觉不是很好,应该有其他方式优化
    for(int i = 0; i < n; i++)
    {
        //不能本身比,不然就会变-1,
        //前面比完,后面一定和前面不同
        for(int j = i + 1; j < n; j++)
        {
            if(a[i] == a[j])
                a[j] = -1;
        }
    }

    for(int i = 0; i < n; i++)
    {
        if(a[i] != -1)
            printf("%d ", a[i]);
    }
    free(a);
    a = NULL;
}

int main() 
{
    //原理a^a = 0,a^0 = a
    int n;
    scanf("%d", &n);
    Distincy(n);
    return 0;
}

全部评论

相关推荐

11-15 18:39
已编辑
西安交通大学 Java
全村最靓的仔仔:卧槽,佬啥bg呢,本也是西交么
点赞 评论 收藏
分享
尊尼获获:闺蜜在哪?
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务