題目描述:
給定乙個非負整數陣列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 <= 20000
a.length % 2 == 0
0 <= 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...