切換
舊版
前往
大廳
主題

ZeroJudge - e529: 00482 - Permutation Arrays 解題心得

Not In My Back Yard | 2019-11-12 22:24:38 | 巴幣 2 | 人氣 300

題目連結:


題目大意:
給定一正整數 T ,代表測試資料的筆數。每筆測試資料前有一空白列。接著的測試資料由兩列輸入組成。第一列由 1 ~ n (n 不固定)的一種排列組成;第二列是 n 個數字(整數、小數參雜)。

第一列的數據代表著「索引值」,即其對應的第二列之數據應在的位置。請藉由此索引值數列,將第二列的數據排至定位。並輸出排序後的第二列數字。每筆測試資料的輸出之間應有一空白列。



範例輸入:
1

3 1 2
32.0 54.7 -2


範例輸出:
54.7
-2
32.0


解題思維:
有兩種做法:
一種是看第一列最大值的值是多少(即 n ),就開多大的陣列。然後讀到第二列的時候,就找到對應於第一列的數字 x ,並存在剛剛開的陣列的第 x 個位置;
另一種是把兩列的資訊綁在一起,形成一個結構(Struct)、類別(Class)或是對(Pair)。然後就直接依據第一列的索引值本身的大小由小直接排到大(因為上下相對應的資料已經綁在一起,所以不用擔心排序後亂掉)。排序後即是所求。

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

創作回應

更多創作