输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
思路:双指针,一个指针从头开始,找第一个偶数;一个指针从尾开始,找第一个奇数,找到后交换。
class Solution {
public int[] exchange(int[] nums) {
int i = 0, j = nums.length - 1;
while (i < j){
while (i < j && (nums[i] & 1) == 1) i++;
while (i < j && (nums[j] & 1) == 0) j--;
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
return nums;
}
}