leetcode-922-easy
Sort Array By Parity II
Given an array of integers nums, half of the integers in nums are odd, and the other half are even.
Sort the array so that whenever nums[i] is odd, i is odd, and whenever nums[i] is even, i is even.
Return any answer array that satisfies this condition.
Example 1:
Input: nums = [4,2,5,7]
Output: [4,5,2,7]
Explanation: [4,7,2,5], [2,5,4,7], [2,7,4,5] would also have been accepted.
Example 2:
Input: nums = [2,3]
Output: [2,3]
Constraints:
2 <= nums.length <= 2 * 104
nums.length is even.
Half of the integers in nums are even.
0 <= nums[i] <= 1000
Follow Up: Could you solve it in-place?
思路一:和上一题的思路差不多,前后分别遍历
public int[] sortArrayByParityII(int[] nums) {
int[] clone = nums.clone();
int begin = 0;
int end = nums.length - 1;
for (int i = 0; i < clone.length; i++) {
if (clone[i] % 2 == 0) {
nums[begin] = clone[i];
begin += 2;
}
}
for (int i = clone.length - 1; i >= 0; i--) {
if (clone[i] % 2 != 0) {
nums[end] = clone[i];
end -= 2;
}
}
return nums;
}

浙公网安备 33010602011771号