剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
难度:简单
题目描述
解题思路
这不就是快排的思路嘛
双指针,一个从前往后一个从后往前,不符合要求就交换两个指针的值
public int[] exchange(int[] nums) {
int left = 0,right = nums.length-1;
while(left < right) {
while( left < right && nums[left]%2 == 1) { //前面的奇数,往后移,直到left指向左边出现的第一个偶数
left++;
}
while(left < right && nums[right]%2 == 0) { //后面的偶数,往后移,直到right指向右边出现的第一个偶数
right--;
}
if(left < right) {
int temp = nums[left];
nums[left] = nums[right];
nums[right] = temp;
left++;
right--;
}
}
return nums;
}