奇数位于偶数前面
原创大约 1 分钟
题目:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。
输入:nums = [1,2,3,4]
输出:[1,3,2,4]
注:[3,1,2,4] 也是正确的答案之一。
思考:
提示
双指针
指针 i 从左向右寻找偶数
指针 j 从右向左寻找奇数
将 偶数 nums[i] 和 奇数 nums[j] 交换。
题解:
class Solution {
public int[] exchange(int[] nums) {
int l = 0,r = nums.length-1;
//交换
while (l < r){
while (l < r && nums[l] % 2 == 1) l++;
while (l < r && nums[r] % 2 == 0) r--;
int tmp = nums[l];
nums[l] = nums[r];
nums[r] = tmp;
}
return nums;
}
}