你有一個下標從?0?開始、長度為?偶數?的整數數組?nums
?,同時還有一個空數組?arr
?。Alice 和 Bob 決定玩一個游戲,游戲中每一輪 Alice 和 Bob 都會各自執行一次操作。游戲規則如下:
?·
每一輪,Alice 先從?nums
?中移除一個?最小?元素,然后 Bob 執行同樣的操作。
?·
接著,Bob 會將移除的元素添加到數組?arr
?中,然后 Alice 也執行同樣的操作。
?·
游戲持續進行,直到?nums
?變為空。
返回結果數組?arr
?。
示例 1:
輸入:nums = [5,4,2,3]
輸出:[3,2,5,4]
解釋:第一輪,Alice 先移除 2 ,然后 Bob 移除 3 。然后 Bob 先將 3 添加到 arr 中,接著 Alice 再將 2 添加到 arr 中。于是 arr = [3,2] 。
第二輪開始時,nums = [5,4] 。Alice 先移除 4 ,然后 Bob 移除 5 。接著他們都將元素添加到 arr 中,arr 變為 [3,2,5,4] 。
示例 2:
輸入:nums = [2,5]
輸出:[5,2]
解釋:第一輪,Alice 先移除 2 ,然后 Bob 移除 5 。然后 Bob 先將 5 添加到 arr 中,接著 Alice 再將 2 添加到 arr 中。于是 arr = [5,2] 。
提示:
?·1 <= nums.length <= 100
?·1 <= nums[i] <= 100
?·nums.length % 2 == 0
題目大意:每次從數組中取出2個最小元素,并按大到小的順序依次將這2個元素放入新數組。
分析:先對數組進行升序排序,再交換數組中相鄰的元素即可。
class Solution {
public:vector<int> numberGame(vector<int>& nums) {int N=nums.size();sort(nums.begin(),nums.end());for(int i=1,tmp;i<N;i+=2){tmp=nums[i];nums[i]=nums[i-1];nums[i-1]=tmp;}return nums;}
};