为什么此代码CodingBat会出现超时错误?

时间:2016-10-26 01:29:38

标签: java arrays

问题是:

给定一组正整数,返回一个长度为“count”的新数组,其中包含原始数组中的第一个偶数。原始数组至少包含“count”偶数。

我的解决方案是:

public int[] copyEvens(int[] nums, int count) {
int counter=0;
int[] arr = new int[count];
while (counter<count)
{
  if (nums[counter]%2==0)
{
  counter++;
 arr[counter]=nums[counter];
}
}
return arr;
}

当我在CodingBat中运行它时,它说Timed Out。

1 个答案:

答案 0 :(得分:2)

在此代码中

while (counter<count)
{
  if (nums[counter]%2==0)
  {
    counter++;
    arr[counter]=nums[counter];
  }
}

如果nums[counter]评估为假,则counter将不会增加,并且会有一个infinte循环。 <{1}}无法超过counter,并且会继续循环播放。