**
双指针,左指针从左遍历,右指针从右遍历,两指针相遇时结束循环
当左指针判断当前数不为偶数时,则指针向后移
当右指针判断当前数不为奇数时,指针向前移
当左指针指向的数为偶数,右指针指向的数为奇数的时候交换数即可**
时间复杂度 O(N) : N 为数组 numsnumsnums 长度,双指针 iii, jjj 共同遍历整个数组。
空间复杂度 O(1) : 双指针 i, j使用常数大小的额外空间。
class Solution {
public int[] exchange(int[] nums) {
if(nums.length<1 && nums == null) return nums;
int left = 0 ,rigth = nums.length-1;
while(left < rigth){
if(nums[left] % 2 !=0){
left++;
}else if(nums[rigth] % 2 ==0){
rigth--;
}else{
int temp = nums[left];
nums[left] = nums[rigth];
nums[rigth] = temp;
}
}
return nums;
}
}