如何找到阵列中的下一个可用插槽?

时间:2016-05-01 20:33:14

标签: java arrays

当我遇到这个问题时,我正在CodingBat上练习,我无法理解。给定一个正整数数组,我必须创建一个长度为“count”的数组,其中包含原始数组中的第一个偶数。原始数组至少包含“count”偶数。我的代码在下面,虽然我知道第一个if语句下面的所有内容都不起作用,“counter”变量基本没用。

public int[] copyEvens(int[] nums, int count) {
  int counter = 0;
  int[] countArr = new int [count];
  for (int i = 0; i < nums.length; i++) {
    if (nums[i] % 2 == 0) {
      //what to put here?
    }
  }
  return countArr;
}

任何帮助都会非常感激。

3 个答案:

答案 0 :(得分:2)

以下内容不正确:

  if (i == count) {

这将检查输入数组中的位置,而不是输出数组中的位置,而不是count

答案 1 :(得分:1)

public int[] copyEvens(int[] nums, int count) {
  int counter = 0;
  int[] countArr = new int [count];
  for (int i = 0; i < nums.length && counter < count; i++) 
    if ((nums[i] % 2) == 0) 
        countArr[counter++] = nums[i];
  return countArr;
}

学校的东西......对吧?

答案 2 :(得分:0)

我认为你应该比较一下 counter ...从0开始..所以你需要加1,因为我很确定count不包括0作为索引。

因此,

if((counter+1) ==count)

应该替换原来的。