主題

ZeroJudge - f667: FJCU_109_Winter_Day1_Lab1 第 k 大 解題心得

Not In My Back Yard | 2021-02-24 22:32:24 | 巴幣 0 | 人氣 50

題目連結:


題目大意:
輸入前幾列(以一列 -1 作結)每列給定一整數,代表一數列(數字量不超過 100 個)之內容。最後一列給定一整數 k ,試問給定的數列中第 k 大的數字為何?



範例輸入:
5
2
3
-1
2


範例輸出:
3


解題思維:
相當單純的題目。

在讀到 -1 這個數字之前,就是一直輸入數字並存起來。可以使用 vector 這種可變大小之陣列,或是直接一個普通陣列開滿 101 個位置並用一變數紀錄目前數字量。

讀到 -1 後,讀入 k 值。然後將數列排序(假設數列名為 A ,且數字有 N 個),如果是由小到大,則所求數字將位於 A[N - k] (索引值從 0 開始);如果是由大排到小,則所求數字位於 A[k - 1]。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作