public int[] sortArrayByParityII(int[] nums) {
int size = 0;
if (nums.length % 2 == 0) {
size = nums.length / 2;
} else {
size = nums.length / 2 + 1;
}
List<Integer> odd = new ArrayList<>();
List<Integer> evn = new ArrayList<>();
int eIdx = 0, oIdx = 0;
for (int i : nums) {
if (i % 2 == 0) {
evn.add(i);
} else {
odd.add(i);
}
}
Collections.sort(odd, Collections.reverseOrder());
Collections.sort(evn, Collections.reverseOrder());
int[] answer = new int[nums.length];
for (int i = 0; i < nums.length; i++) {
if (i % 2 == 0) {
answer[i] = evn.get(i / 2);
} else {
answer[i] = odd.get(i / 2);
}
}
return answer;
}