双指针的思路
前后两个指针
如果这个数是奇数,就往后运动
如果这个数是偶数,就往前运动
交换这两个数
进行循环。
public class Solution {
public int[] exchange(int[] nums) {
// 思路是,前后两个指针,往中间运动
int i = 0;
int j = nums.length - 1;
int tmp;
while (i < j) {
while (i < j && nums[i] % 2 == 1) {
i++;
}
while (i < j && nums[j] % 2 == 0) {
j--;
}
if (i < j) {
tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
}
return nums;
}
}