class Solution {
// 双指针左右靠近
public int[] exchange(int[] nums) {
if(nums.length==0){
return new int[]{};
}
int l=0,r=nums.length-1;
while(l<r){
// 左偶数右奇数
if((nums[l]&1)== 0 && (nums[r]&1) ==1){
int temp=nums[l];
nums[l]=nums[r];
nums[r]=temp;
l++;
r--;
// 都为偶数
}else if((nums[l]&1)== 0 && (nums[r]&1) ==0){
r--;
// 都为奇数
}else if((nums[l]&1)==1 && (nums[r]&1) ==1){
l++;
// 左奇由偶
}else{
l++;
r--;
}
}
return nums;
}
}
// class Solution {
// // 双指针左右靠近,写法2
// public int[] exchange(int[] nums) {
// if(nums.length==0){
// return new int[]{};
// }
// int l=0,r=nums.length-1;
// while(l<r){
// while(l<r&&(nums[l]&1)==1){
// l++;
// }
// while(l<r&&(nums[r]&1)==0){
// r--;
// }
// if(l<r){
// int temp=nums[l];
// nums[l]=nums[r];
// nums[r]=temp;
// }
// }
// return nums;
// }
// }