前往
大廳
主題

LeetCode - 2164. Sort Even and Odd Indices Independently 解題心得

Not In My Back Yard | 2022-09-15 12:00:07 | 巴幣 0 | 人氣 162

題目連結:


題目意譯:
你被給定一個索引值從 0 開始之整數陣列 nums。請根據以下規則來重新排列 nums 中的數值:
把 nums 中奇數索引值的數字按照非升序的順序排列。
例如,如果 nums 先前為 [4,1,2,3],則它在此步驟將變為 [4,3,2,1]。位於奇數索引值 1 和 3 的數字是按照非升序之順序排列。
把 nums 中偶數索引值的數字按照非降序的順序排列。
例如,如果 nums 先前為 [4,1,2,3],則它在此步驟將變為 [2,1,4,3]。位於奇數索引值 0 和 2 的數字是按照非降序之順序排列。

回傳按照上述方式將 nums 重新排列後形成的陣列。

限制:
1 ≦ nums.length ≦ 100
1 ≦ nums[i] ≦ 100



範例測資:
範例 1:
輸入: nums = [4,1,2,3]
輸出: [2,3,4,1]
解釋:
首先,我們以非升序之順序來排列奇數索引值的數值。
因此,nums 從 [4,1,2,3] 變成 [4,3,2,1]。
接著,我們以非降序之順序來排列偶數索引值的數值。
因此,nums 從 [4,3,2,1] 變成 [2,3,4,1]。
因此數值重新排列後的陣列為 [2,3,4,1]。

範例 2:
輸入: nums = [2,1]
輸出: [2,1]
解釋:
由於這裡只有恰好一個奇數以及一個偶數索引值,因此不需重新排列。
結果之陣列為 [2, 1],其與原始陣列相同。


解題思維:
直接把 nums 拆成奇數索引值跟偶數索引值兩個新陣列,然後對前者按非升序、對後者按非降序呼叫排序函式。最後把兩者交錯地串接在一起即是所求。




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

創作回應

更多創作