【发布时间】:2017-03-05 21:11:46
【问题描述】:
首先 - 这不是家庭作业 - 我在上次面试时遇到了这个问题,但没能完成。
所以问题类似于:“给定长度为 n 的 int 数组 k,'删除'所有偶数并将奇数移到前面”。它的措辞有点奇怪,因为他们说删除,但例子表明我应该把所有奇数放在数组前面(从 0 索引开始),偶数可以留在数组中(或者不 - 没关系) 在所有奇数之后。 示例:
{1, 4, 6, 8, 7, 2} -> {1, 7, whatever}
{2, 4, 6, 9, 5} -> {9, 5, whatever}
我希望尽可能高效。我无法使用任何其他库或临时数组。
到目前为止得到了这个但我卡住了:
private static void removeEven(int[] k, int n) {
for (int i = 0; i < n; i++) {
if (k[i] % 2 == 0) {
k[i] = // don't know
}
}
【问题讨论】:
-
必须是同一个数组。