1. 本题知识点
数组
2. 题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
例如:
Input:
[1,2,3,4,5]
Output:
[1,3,5,2,4]
3. 解题思路
创建一个奇数数组和一个偶数数组,将原数组中的奇数和偶数分别加入其中,最后将奇数数组和偶数数组赋值给原数组。
原数组:[1,2,3,4,5]
奇数数组:[1,3,5]
偶数数组:[2,4]
赋值给原数组:[1,3,5,2,4]
4.代码
public class Solution {
public void reOrderArray(int[] array
) {
int[] evenArray
= new int[array
.length
];
int[] oddArray
= new int[array
.length
];
int evenNum
= 0;
int oddNum
= 0;
for (int i
= 0; i
< array
.length
; i
++) {
if (array
[i
] % 2 == 0) {
evenArray
[evenNum
] = array
[i
];
evenNum
++;
}
else {
oddArray
[oddNum
] = array
[i
];
oddNum
++;
}
}
System
.arraycopy(oddArray
, 0, array
, 0, oddNum
);
System
.arraycopy(evenArray
, 0, array
, oddNum
, evenNum
);
}
}