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
Rust Solution
struct Solution;
impl Solution {
fn sort_array_by_parity(mut a: Vec<i32>) -> Vec<i32> {
let mut l = 0;
let mut r = a.len() - 1;
while l < r {
while a[l] % 2 == 0 && l < r {
l += 1;
}
while a[r] % 2 == 1 && l < r {
r -= 1;
}
if l < r {
a.swap(l, r);
}
}
a
}
}
#[test]
fn test() {
let a = vec![3, 1, 2, 4];
let b = vec![4, 2, 1, 3];
assert_eq!(Solution::sort_array_by_parity(a), b);
}
Having problems with this solution? Click here to submit an issue on github.