09 Sept 2026Go / Python / TypeScriptEasy

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

Gosort-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
}
Pythonsort-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
TypeScriptsort-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;
}