分割一个整数数组,使得奇数在前偶数在后
给定 [1,
2, 3, 4]
,返回 [1,
3, 2, 4]
。
public
class Solution {
/**
* @param nums: an array of integers
* @return: nothing
* "双指针概念 从两头开始"
* 左边找到第一个偶数与右边找到的第一个奇数交换
*/
public void partitionArray(int[] nums) {
// write your code here;
int temp;
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){
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
/* while (i < j){//直接找到左边第一个偶数,与后面的交换 交换之后继续检查交换得来的数
if (nums[i] % 2 == 0){
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
j--;
}
else{
i++;
}
}*/
}
}