题目:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。
示例:
输入:nums = [1,2,3,4]
输出:[1,3,2,4]
注:[3,1,2,4] 也是正确的答案之一。
分析:
可以在头与尾分别设置指针,两个指针一起遍历,当nums[i]是偶数时,与nums[j]交换;当nums[j]是奇数时,与nums[i]交换。就可以实现前面全是奇数,后面全是偶数啦。
代码实现:
/**
* @param {number[]} nums
* @return {number[]}
*/
var exchange = function (nums) {
var i, j, temp
for (i = 0,j = nums.length - 1; i < j; i++, j--) {
while (i < j && nums[i] % 2 !== 0)
i++;
while (i < j && nums[j] % 2 === 0)
j--;
temp = nums[i]
nums[i] = nums[j]
nums[j] = temp
}
return nums;
};
欢迎友友们一起来讨论哦~~~