切換
舊版
前往
大廳
主題

ZeroJudge - a277: 高手寂寞 解題心得

Not In My Back Yard | 2019-06-17 20:25:07 | 巴幣 0 | 人氣 256

題目連結:


題目大意:
給定兩正整數 N (N ≦ 100, 000),代表有 N 個整數(皆介於 1 ~ 10 ^ 9 之間)。接著的一列輸入即是這 N 個數的值。

求這 N 個整數兩兩一組的差(總共有 N × (N - 1) ÷ 2)的中位數為何?如果 CN 取 2 之個數 K 為偶數,則直接找出第 K ÷ 2 小的差即可,不須與第 K ÷ 2 + 1 小的取平均。



範例輸入:
3
1 3 9
4
1 2 3 4


範例輸出:
6
1


解題思維:
昨天的題目極度相似。只是從找到第 K 大的差,改為找最中間的數字,即:
個數 K = N × (N - 1) ÷ 2 為奇數的話,則要找到第 K ÷ 2 + 1 小的數字;
若 K 為偶數,則找第 K ÷ 2 小的數字。

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

創作回應

更多創作