LeetCode 922 按奇偶排序陣列II

2021-09-13 10:18:08 字數 1113 閱讀 9953

題目描述:

給定乙個非負整數陣列a, a 中一半整數是奇數,一半整數是偶數。

對陣列進行排序,以便當a[i]為奇數時,i也是奇數;當a[i]為偶數時,i也是偶數。

你可以返回任何滿足上述條件的陣列作為答案。

示例:

輸入:[4,2,5,7]輸出:[4,5,2,7]解釋:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也會被接受。

2 <= a.length <= 20000a.length % 2 == 00 <= a[i] <= 1000

解題思路:c語言版:

動態分配一段儲存空間用來儲存陣列;設定兩個指標,偶數指標從0開始,奇數指標從1開始;遍歷陣列,如果陣列中的元素是偶數,將它存在偶數字置上,偶數指標加2遞增;否則將它存在奇數字置上,奇數指標加2遞增。返回新開闢陣列的陣列名。

/**

* return an array of size *returnsize.

* note: the returned array must be malloced, assume caller calls free().

*/int* sortarraybyparityii(int* a, int asize, int* returnsize) else

}return b;

}

解題思路:c++版

設定兩個指標,i指標從前往後遍歷,每次遞增加2。

如果j位置上的元素是奇數,j遞減2.

交換兩i和j位置的元素。

返回a向量。

class solution 

}return a;

}};

總結:自動分配空間,雙指標運動問題。

leetcode 922按奇偶排序陣列

給定乙個非負整數陣列 a,a 中一半整數是奇數,一半整數是偶數。對陣列進行排序,以便當 a i 為奇數時,i 也是奇數 當 a i 為偶數時,i 也是偶數。你可以返回任何滿足上述條件的陣列作為答案。示例 輸入 4,2,5,7 輸出 4,5,2,7 解釋 4,7,2,5 2,5,4,7 2,7,4,5...

leetcode 922 按奇偶排序陣列 II

給定乙個非負整數陣列a,a 中一半整數是奇數,一半整數是偶數。對陣列進行排序,以便當a i 為奇數時,i也是奇數 當a i 為偶數時,i也是偶數。你可以返回任何滿足上述條件的陣列作為答案。示例 輸入 4,2,5,7 輸出 4,5,2,7 解釋 4,7,2,5 2,5,4,7 2,7,4,5 也會被接...

leetcode922 按奇偶排序陣列 II

思路 將偶數和奇數分別放在even和odd列表中,然後利用zip 和chain 函式,將兩個列表交叉組合在一起。重點是利用的zip函式和chain函式。zip 注意 zip 返回的是乙個元組物件。如需展示列表,需手動 list 轉換。zip 與zip 相反,相當於解壓 示例 chain 使用 cha...