題目
分割一個整數陣列,使得奇數在前偶數在後。
樣例 給定[1, 2, 3, 4],返回[1, 3, 2, 4]。
分析
這道題其實很熟悉。將奇數排在前,偶數排在後
是不是和快速排序中的partiton演算法很類似。其實是類似的。
設定兩個指標,一頭一尾,分別尋找偶數和奇數
程式碼
public class Solution {
/**
* @param nums: an array of integers
* @return: nothing
*/
public void partitionArray(int[] nums) {
// write your code here;
int i=0;
int j=nums.length - 1;
while(i<j){
while(nums[i]%2==1){
i++;
}
while(nums[j]%2==0){
j--;
}
if(i<j){
nums[i]=nums[i]+nums[j];
nums[j]=nums[i]-nums[j];
nums[i]=nums[i]-nums[j];
}
}
}
}
複製程式碼