昨晚搞了個acm題,當時沒考慮到記憶體限制,用了int陣列,然後鍊錶動態分配的方法,結果記憶體不夠無法ac,今天考慮了一下,用陣列唯一性的原理就可以實現了。難點在於用char陣列儲存資料,可以節約記憶體空間。
題目描述:現在有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 #include #define max 1000001int 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個整數中的最大值,並將此值從陣列中去除,將剩下的數進行排序。第二行將排序...