算法思想:用到了快排的思想,分别定义两个指针,左右指针,左指针指向左边的初始值,右指针指向右边的初始值,右边的值时奇数,然后进行调换,左边的值时偶数,然后进行调换
class Solution {
public int[] exchange(int[] nums) {
//其实就是用到了快排的思想,右指针指向最右边的值,左指针指向最左边的值,
//如果右边的值时奇数,然后进行替换
//如果左边的值时偶数的话,进行替换
//唯一和快排区别的就是不用递归
if(nums==null||nums.length==0){
return nums;
}
int left = 0,right = nums.length-1;
int temp = nums[left];
while(left<right){
//从右到做挪动
while(left<right){
if(nums[right]%2==1){
nums[left] = nums[right];
break;
}
right--;
}
while(left<right){
if(nums[left]%2==0){
nums[right] = nums[left];
break;
}
left++;
}
nums[left]=temp;
}
return nums;
}
}