## Leetcode Algorithms

905. Sort Array By Parity

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`

Solution:

`class Solution:`

def sortArrayByParity(self, A: List[int]) -> List[int]:

even = []

odd = []

for i in range(len(A)):

if A[i] % 2 == 0:

even.append(A[i])

else:

odd.append(A[i])

return even + odd

Time: O(N)

Space: O(N)

Java Solution in O(N) and O(1):

class Solution {

public int[] sortArrayByParity(int[] A) {

int index = 0;

for (int i = 0; i < A.length; i ++){ if(A[i] % 2 == 0){ // A[i] is the current element int temp = A[index]; // store it so wont overwrite A[index ++] = A[i];

A[i] = temp;

} }

return A;}

};