剑指offer 21

算法思想:用到了快排的思想,分别定义两个指针,左右指针,左指针指向左边的初始值,右指针指向右边的初始值,右边的值时奇数,然后进行调换,左边的值时偶数,然后进行调换

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;

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值