Leetcode: Sort Array By Parity

Sort Array By Parity



Similar Problems:


Given an array A of non-negative integers, return an array consisting of all the even elements of A, followed by all the odd elements of A.

You may return any answer array that satisfies this condition.

Example 1:

Input: [3,1,2,4]
Output: [2,4,3,1]
The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.

Note:

  • 1 <= A.length <= 5000
  • 0 <= A[i] <= 5000

Github: code.dennyzhang.com

Credits To: leetcode.com

Leave me comments, if you have better ways to solve.


  • Solution:
// Blog link: https://code.dennyzhang.com/sort-array-by-parity
// Basic Ideas: two pointer
// Complexity: Time O(n), Space O(1)
func sortArrayByParity(A []int) []int {
    i, j := 0, len(A) - 1
    for i < j {
        if A[i] % 2 == 0 {
            i++
            continue
        }
        if A[j] % 2 == 1 {
            j--
            continue
        }
        A[i], A[j] = A[j], A[i]
        i, j = i+1, j-1
    }
    return A
}
linkedin
github
slack

Share It, If You Like It.

Leave a Reply

Your email address will not be published.