0922. Sort Array by Parity I I

922. Sort Array By Parity II #

Problem #

Given an array A of non-negative integers, half of the integers in A are odd, and half of the integers are even.

Sort the array so that whenever A[i] is odd, i is odd; and whenever A[i] is even, i is even.

You may return any answer array that satisfies this condition.

Example 1:


Input: [4,2,5,7]
Output: [4,5,2,7]
Explanation: [4,7,2,5], [2,5,4,7], [2,7,4,5] would also have been accepted.

Note:

  • 2 <= A.length <= 20000
  • A.length % 2 == 0
  • 0 <= A[i] <= 1000

Problem Summary #

Place odd numbers at odd indices and even numbers at even indices in the array.

Solution #

This problem is relatively simple. Use two indices to control where odd and even numbers should be placed. The order among odd numbers and among even numbers can be unordered.

Code #


package leetcode

func sortArrayByParityII(A []int) []int {
	if len(A) == 0 || len(A)%2 != 0 {
		return []int{}
	}
	res := make([]int, len(A))
	oddIndex := 1
	evenIndex := 0
	for i := 0; i < len(A); i++ {
		if A[i]%2 == 0 {
			res[evenIndex] = A[i]
			evenIndex += 2
		} else {
			res[oddIndex] = A[i]
			oddIndex += 2
		}
	}
	return res
}


Calendar Jun 25, 2026
Edit Edit this page
Total visits:   You are visitor No.
中文