Write even values into even positions and odd values into odd positions of a new array.
Complexity
O(n) time and O(n) output space.
Rearrange an equal mix of even and odd integers so every index has matching parity.
Write even values into even positions and odd values into odd positions of a new array.
O(n) time and O(n) output space.
package main
func sortArrayByParityII(nums []int) []int {
result := make([]int, len(nums))
even, odd := 0, 1
for _, value := range nums {
if value%2 == 0 {
result[even] = value
even += 2
} else {
result[odd] = value
odd += 2
}
}
return result
}
class Solution:
def sortArrayByParityII(self, nums: list[int]) -> list[int]:
result = [0] * len(nums)
even, odd = 0, 1
for value in nums:
if value % 2 == 0: result[even], even = value, even + 2
else: result[odd], odd = value, odd + 2
return result
function sortArrayByParityII(nums: number[]): number[] {
const result = new Array<number>(nums.length);
let even = 0;
let odd = 1;
for (const value of nums) { if (value % 2 === 0) { result[even] = value; even += 2; } else { result[odd] = value; odd += 2; } }
return result;
}