package SwordOffer;
/**
* @Description: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
示例:
输入:nums = [1,2,3,4]
输出:[1,3,2,4]
注:[3,1,2,4] 也是正确的答案之一。
提示:
1 <= nums.length <= 50000
1 <= nums[i] <= 10000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
* @Param:
* @return:
* @Author: lvhong
* @Date:
* @E-mail lvhong282@163.com
*/
public class lab21easy {
//双向指针
public int[] exchange(int[] nums) {
int temp=0;;
int pre=0;
int cur=nums.length-1;
while(pre<cur){
while(nums[pre]%2==1&&pre<cur){
pre++;
}
while(nums[cur]%2==0&&pre<cur){
cur--;
}
temp=nums[pre];
nums[pre]=nums[cur];
nums[cur]=temp;
}
return nums;
}
//快慢指针
// public int[] exchange(int[] nums) {
// int low = 0;
// int fast = 0;
// int temp = 0;
// while (fast < nums.length) {
// if (nums[fast] % 2 == 1) {
// temp = nums[low];
// nums[low] = nums[fast];
// nums[fast] = temp;
// low++;
// }
// fast++;
// }
// return nums;
// }
}