date: 2018/05/19 原文
1. Question
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
2. Solution
class Solution {
public int[] sortArrayByParity(int[] A) {
int len = A.length;
int position = len - 1;
for (int i = 0; i < A.length; i++) {
if (A[i] % 2 != 0) {//奇数
//找到最后的那个数
while (position > i && A[position] % 2 != 0) { //奇数
position--;
}
if (position > i) {
//出现了偶数
int temp = A[i];
A[i] = A[position];
A[position] = temp;
}
}
}
return A;
}
}
3. Think
思路: 让奇数与最后的偶数进行交换,for循环一遍,就置换了位置