題目描述:現在有n個數,其中有一些出現了一次,一些出現了兩次,一些出現了很多次。現在要求你找出那些只出現一次的數,並按公升序輸出。
輸入:本題有多組case。
每個case有兩行,第一行輸入乙個n,表示有n個數,1<= n <= 1000000。
第二行有n個數字。每個數字的大小範圍[1, 1000000]。
輸出:每次輸出有兩行。
第一行輸出乙個整數,表示出現一次的數的個數。
第二行按公升序輸出出現次數為一次的數字,兩個數字之間用空格隔開。
樣例輸入:
51 2 2 3 3
71 2 2 3 4 4 2
22 2
樣例輸出:
1121 30
#include #include #define max 1000001char input[max];
int main(void)
else if (input[data] == 1)
}cnt = 0;
for (i = 1; i < max; ++i)
if (input[i] == 1)
++cnt;
printf("%d\n", cnt);
i = 0;
while (i < max && cnt != 0)
++i;}}
return 0;
}
位操作
#include #include #define max 125010unsigned char input[max];//標記數字是否出現過
unsigned char num[max];//標記數字是否只出現過一次
int main(void)
else if ((num[index] & (1 << bit)) == 0)
} cnt = 0;
for (i = 1; i <= 1000000; ++i)
printf("%d\n", cnt);
i = 1;
while (i <= 1000000 && cnt != 0)
++i;
} }return 0;
}
特殊的數 九度oj(1402)
昨晚搞了個acm題,當時沒考慮到記憶體限制,用了int陣列,然後鍊錶動態分配的方法,結果記憶體不夠無法ac,今天考慮了一下,用陣列唯一性的原理就可以實現了。難點在於用char陣列儲存資料,可以節約記憶體空間。題目描述 現在有n個數,其中有一些出現了一次,一些出現了兩次,一些出現了很多次。現在要求你找...
特殊的數 九度oj(1402)
昨晚搞了個acm題,當時沒考慮到記憶體限制,用了int陣列,然後鍊錶動態分配的方法,結果記憶體不夠無法ac,今天考慮了一下,用陣列唯一性的原理就可以實現了。難點在於用char陣列儲存資料,可以節約記憶體空間。題目描述 現在有n個數,其中有一些出現了一次,一些出現了兩次,一些出現了很多次。現在要求你找...
九度oj 題目1185 特殊排序
題目描述 輸入一系列整數,將其中最大的數挑出,並將剩下的數進行排序。輸入 輸入第一行包括1個整數n,1 n 1000,代表輸入資料的個數。接下來的一行有n個整數。輸出 可能有多組測試資料,對於每組資料,第一行輸出乙個整數,代表n個整數中的最大值,並將此值從陣列中去除,將剩下的數進行排序。第二行將排序...