09 Sept 2026•Go / Python / TypeScript•Easy

Sort Array By Parity II

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.

complexity

O(n) time and O(n) output space.

solution files

  • Go sort-array-by-parity-ii/solution.go
  • Python sort-array-by-parity-ii/solution.py
  • TypeScript sort-array-by-parity-ii/solution.ts

Solution files

Go•sort-array-by-parity-ii/solution.go
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
}
Python•sort-array-by-parity-ii/solution.py
class Solution:
    def sortArrayByParityII(self, nums: list[int]) -> list[int]:
        result = [class="syntax-number">0] * len(nums)
        even, odd = class="syntax-number">0, class="syntax-number">1
        for value in nums:
            if value % class="syntax-number">2 == class="syntax-number">0: result[even], even = value, even + class="syntax-number">2
            else: result[odd], odd = value, odd + class="syntax-number">2
        return result
TypeScript•sort-array-by-parity-ii/solution.ts
function sortArrayByParityII(nums: number[]): number[] {
  const result = new Array<number>(nums.length);
  let even = class="syntax-number">0;
  let odd = class="syntax-number">1;
  for (const value of nums) { if (value % class="syntax-number">2 === class="syntax-number">0) { result[even] = value; even += class="syntax-number">2; } else { result[odd] = value; odd += class="syntax-number">2; } }
  return result;
}