Algorithm
Problem Name: 905. Sort Array By Parity
Given an integer array nums, move all the even integers at the beginning of the array followed by all the odd integers.
Return any array that satisfies this condition.
Example 1:
Input: nums = [3,1,2,4] Output: [2,4,3,1] Explanation: The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.
Example 2:
Input: nums = [0] Output: [0]
Constraints:
1 <= nums.length <= 50000 <= nums[i] <= 5000
Code Examples
#1 Code Example with Java Programming
Code -
Java Programming
class Solution {
public int[] sortArrayByParity(int[] A) {
int evenIdx = 0;
int oddIdx = A.length - 1;
while (evenIdx < oddIdx) {
if (A[evenIdx] % 2 == 0) {
evenIdx++;
}
else {
int temp = A[evenIdx];
A[evenIdx] = A[oddIdx];
A[oddIdx--] = temp;
}
}
return A;
}
}
Copy The Code &
Try With Live Editor
Input
Output
#2 Code Example with Javascript Programming
Code -
Javascript Programming
const sortArrayByParity = function(A) {
for(let i = 0, len = A.length; i < len;) {
if(A[i] % 2 !== 0) {
A.push(A[i])
A.splice(i, 1)
len--
} else {
i++
}
}
return A
};
Copy The Code &
Try With Live Editor
Input
Output
#3 Code Example with Python Programming
Code -
Python Programming
class Solution:
def sortArrayByParity(self, A):
return [a for a in A if not a % 2] + [a for a in A if a % 2]
Copy The Code &
Try With Live Editor
Input
Output
#4 Code Example with C# Programming
Code -
C# Programming
namespace LeetCode
{
public class _0905_SortArrayByParity
{
public int[] SortArrayByParity(int[] A)
{
int left = 0;
int right = A.Length - 1;
while (left < right)
{
while (left < right && A[left] % 2 == 0) left++;
while (left < right && A[right] % 2 == 1) right--;
var temp = A[left];
A[left] = A[right];
A[right] = temp;
}
return A;
}
}
}
Copy The Code &
Try With Live Editor
Input
Output