題目連結:
給定一正整數 T ,代表測試資料的筆數。每筆測試資料前有一空白列。接著的測試資料由兩列輸入組成。第一列由 1 ~ n (n 不固定)的一種排列組成;第二列是 n 個數字(整數、小數參雜)。
第一列的數據代表著「索引值」,即其對應的第二列之數據應在的位置。請藉由此索引值數列,將第二列的數據排至定位。並輸出排序後的第二列數字。每筆測試資料的輸出之間應有一空白列。
有兩種做法:
一種是看第一列最大值的值是多少(即 n ),就開多大的陣列。然後讀到第二列的時候,就找到對應於第一列的數字 x ,並存在剛剛開的陣列的第 x 個位置;
另一種是把兩列的資訊綁在一起,形成一個結構(Struct)、類別(Class)或是對(Pair)。然後就直接依據第一列的索引值本身的大小由小直接排到大(因為上下相對應的資料已經綁在一起,所以不用擔心排序後亂掉)。排序後即是所求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。