题目:
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。
你可以返回满足此条件的任何数组作为答案。
示例:
输入:[3,1,2,4]
输出:[2,4,3,1]
输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。
思路:
可以在数组的头部和尾部添加两个指针,用来调换,奇数和和偶数的位置。
然后 在交换位置时 ,我采用的是es6的解构赋值。
代码:
var sortArrayByParity = function(nums) {
let first =0
let last =nums.length-1
while(last>first){
if(nums[first]%2===0&&nums[last]%2===1){
first++,last--
}
else if(nums[first]%2===1&&nums[last]%2===0){
[nums[first],nums[last]]=[nums[last],nums[first]]
first++,last--
}
else if(nums[first]%2===0&&nums[last]%2===0){
first++
}
else if(nums[first]%2===1&&nums[last]%2===1){
last--
}
}
return nums
};