作者:
Rushia (みけねこ的鼻屎)
2024-05-06 22:16:29※ 引述《ZooseWu (動物園 公告)》之銘言:
: 幫我解題
: 我有一組不重複的正整數一維陣列
: 每次行動可以將某個數字插入另一個數字的後面
: 行動以一個長度為二的陣列[a, b]表示 a 插入 b 後面
: 如果元素要放到開頭就以插入 0 表示
: 求最小行動數的二維陣列
: ex:
: 題目: [1, 3, 7, 9, 5, 2]
: 答: [[2, 1], [5, 3]]
: 題目: [9, 7, 5, 3, 1]
: 答: [[1, 0], [3, 1], [5, 3], [7, 5]]
: 或是 [[7, 0], [5, 0], [3, 0], [1, 0]]
: 題目的陣列長度是三位數
: 元素都是正整數(其實沒差,不過限定正整數比較好設定排頭)
1.先把陣列分成兩堆,遞增的記住他們的索引變一個單調堆疊,非遞增的記住他們的值。
2.把非遞增的值排序。
3.從最大數字x開始處理非遞增的值,如果stack頂端大於x就把頂端元素pop,如果比較小
就表示要插到頂端的右邊,如果單調堆疊已經空就插到0,因為是從大的元素開始插入
所以右邊的索引變怎樣就不用管了。
py code
作者:
pandix (麵包屌)
2024-05-06 22:33:00我想想 你試試[1,7,9,2,3,4] 這組測資