描述
输入一个长度为 n 整数数组,数组里面可能含有相同的元素,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,对奇数和奇数,偶数和偶数之间的相对位置不做要求,但是时间复杂度和空间复杂度必须如下要求。
思路
一个指针从左边开始,一个从右边开始,当左指针小于右指针时,左边找到偶数的停下,右边找到奇数的停下,然后交换,知道左指针大于等于右指针为止。
代码
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型一维数组
* @return int整型一维数组
*/
public int[] reOrderArrayTwo (int[] array) {
int temp;
int i = 0;
int j = array.length-1;
while(i<j){
while(array[i]%2!=0){
i++;
if(i>=j){
break;
}
}
while(array[j]%2!=1){
j--;
if(j<=i){
break;
}
}
if(i<j){
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
return array;
}
}