特殊的數 九度oj(1402)

2021-08-27 09:25:12 字數 1505 閱讀 1082

昨晚搞了個acm題,當時沒考慮到記憶體限制,用了int陣列,然後鍊錶動態分配的方法,結果記憶體不夠無法ac,今天考慮了一下,用陣列唯一性的原理就可以實現了。難點在於用char陣列儲存資料,可以節約記憶體空間。

題目描述:現在有n個數,其中有一些出現了一次,一些出現了兩次,一些出現了很多次。現在要求你找出那些只出現一次的數,並按公升序輸出。

輸入:本題有多組case。

每個case有兩行,第一行輸入乙個n,表示有n個數,1<=n<=1000000。

第二行有n個數字。每個數字的大小範圍[1,1000000]。

輸出:每次輸出有兩行。

第一行輸出乙個整數,表示出現一次的數的個數。

第二行按公升序輸出出現次數為一次的數字,兩個數字之間用空格隔開。

樣例輸入:

5

1 2 2 3 3

71 2 2 3 4 4 2

22 2

樣例輸出:

112

1 30

#include #include #include #define max 1000001

int main()

else if(a[temp] == 1)

else

}printf("%d\n", count);

if(count)

}} }

return 0;

}

#include #include #include struct lnode

;int compare(const void *a, const void *b);

void createlist(struct lnode *, int);

void cleanlist(struct lnode *);

int main()

//快速排序,呼叫系統qsort

qsort(num, n, sizeof(num[0]), compare);

for(i = j = 0; i < n; i ++)

else

}i = k - 1;

}} //列印輸出

printf("%d\n", j);

for(i = 0, p = head->next; p && i < j; p = p->next, i ++)

//清理鍊錶

cleanlist(head);

} return 0;

}int compare(const void *a, const void *b)

void createlist(struct lnode *head, int data)

void cleanlist(struct lnode *head)

}

特殊的數 九度oj(1402)

昨晚搞了個acm題,當時沒考慮到記憶體限制,用了int陣列,然後鍊錶動態分配的方法,結果記憶體不夠無法ac,今天考慮了一下,用陣列唯一性的原理就可以實現了。難點在於用char陣列儲存資料,可以節約記憶體空間。題目描述 現在有n個數,其中有一些出現了一次,一些出現了兩次,一些出現了很多次。現在要求你找...

九度OJ 1402 特殊的數 位操作

題目描述 現在有n個數,其中有一些出現了一次,一些出現了兩次,一些出現了很多次。現在要求你找出那些只出現一次的數,並按公升序輸出。輸入 本題有多組case。每個case有兩行,第一行輸入乙個n,表示有n個數,1 n 1000000。第二行有n個數字。每個數字的大小範圍 1,1000000 輸出 每次...

九度oj 題目1185 特殊排序

題目描述 輸入一系列整數,將其中最大的數挑出,並將剩下的數進行排序。輸入 輸入第一行包括1個整數n,1 n 1000,代表輸入資料的個數。接下來的一行有n個整數。輸出 可能有多組測試資料,對於每組資料,第一行輸出乙個整數,代表n個整數中的最大值,並將此值從陣列中去除,將剩下的數進行排序。第二行將排序...