/*
* @lc app=leetcode.cn id=905 lang=javascript
*
* [905] 按奇偶排序数组
*/
// @lc code=start
/**
* @param {number[]} nums
* @return {number[]}
*/
var sortArrayByParity = function (nums) {
let i = 0,
j = nums.length - 1
while (i < j) {
// 数组头尾两个指针,如果左指针是奇数,右指针是偶数就交换
if (nums[i] % 2 === 1 && nums[j] % 2 === 0) {
i++
j--
} else if (nums[i] % 2 === 1 && nums[j] % 2 === 1) {
// 如果左指针是奇数,右指针是奇数,右指针前进一步
j--
} else if (nums[i] % 2 === 0 && nums[j] % 2 === 1) {
// 如果左指针是偶数,右指针是奇数,右右指针都前进一步
i++
j--
} else if (nums[i] % 2 === 0 && nums[j] % 2 === 0) {
// 都是奇数,左指针就前进一步
i++
}
}
return nums
}
// @lc code=end