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

序列中整数去重

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

#include <stdio.h>

int main() {
    int n = 0;
    scanf("%d", &n);
    int arr[1000] = {0};
    int i = 0;
    for ( i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    for (i = 0; i < n; i++) {
        int j = 0;
        for (j = i + 1; j < n; j++) {
//先找出相同的元素
//如果相等,要把后续元素往前移动
            if (arr[i] == arr[j]) {
                int k = 0;
                for (k = j; k < n - 1; k++) {
                    arr[k] = arr[k + 1];
                }
                n--;//去重一个,个数少1
                j--;
//如果去重了arr[j]
//把下一个位置的数字arr[j+1],放在新的arr[j]上
//恰好又和arr[i]相同,所以也要再判断
//3 2 3 3 3 4 5
//
            }
        }
    }
    for (i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}

c语言刷题 文章被收录于专栏

c语言刷题题目

全部评论

相关推荐

评论
1
收藏
分享
牛客网
牛客企业服务