Leetcode - 905 Sort Array By Parity (Easy)
题目描述:排序数组使得偶数在前,奇数在后。
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.
解法一:额外数组
public int[] sortArrayByParity(int[] A
) {
int[] res
= new int[A
.length
];
int index
= 0;
for (int i
: A
) {
if (i
% 2 == 0) res
[index
++] = i
;
}
for (int i
: A
) {
if (i
% 2 == 1) res
[index
++] = i
;
}
return res
;
}
解法二:双指针
public int[] sortArrayByParity(int[] A
) {
int left
= 0, right
= A
.length
- 1;
while (right
> left
) {
if (A
[left
] % 2 > A
[right
] % 2) {
int tmp
= A
[left
];
A
[left
] = A
[right
];
A
[right
] = tmp
;
}
if (A
[left
] % 2 == 0) left
++;
if (A
[right
] % 2 == 1) right
--;
}
return A
;
}