https://blog.csdn.net/guliguliguliguli/article/details/126089434
知识分类篇 - 其他算法 - JZ81 调整数组顺序使奇数位于偶数前面(二)


import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param array int整型一维数组
* @return int整型一维数组
*/
public int[] reOrderArrayTwo(int[] array) {
// write code here
int left = 0;
int right = array.length - 1;
while (left < right) {
//array[left]为奇数,left指针一直向右移
while ((left < array.length) && ((array[left] & 1) != 0)) {
left++;
}
//array[right]为偶数,right指针一直向左移
while ((right >= 0) && ((array[right] & 1) == 0)) {
right--;
}
if (left >= right || left >= array.length || right < 0) {
break;
}
int temp = array[right];
array[right] = array[left];
array[left] = temp;
left++;
right--;
}
return array;
}
}
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param array int整型一维数组
* @return int整型一维数组
*/
public int[] reOrderArrayTwo(int[] array) {
// write code here
int[] res = new int[array.length];
int odd = 0;
for (int value : array) {
if ((value & 1) != 0) {
odd++;
}
}
//x表示奇数下标
//y表示偶数开始下标
int x = 0, y = odd;
for (int value : array) {
if ((value & 1) != 0) {
res[x++] = value;
} else {
res[y++] = value;
}
}
return res;
}
}
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param array int整型一维数组
* @return int整型一维数组
*/
public int[] reOrderArrayTwo(int[] array) {
// write code here
int[] res = new int[array.length];
int even = 0;
for (int value : array) {
if ((value & 1) == 0) {
even++;
}
}
//x表示奇数下标
//y表示偶数开始下标
int x = 0, y = array.length - even;
for (int value : array) {
if ((value & 1) != 0) {
res[x++] = value;
} else {
res[y++] = value;
}
}
return res;
}
}