代码如下:
public int[] remove(int[] arr) {
int count = 0;
int[] b = new int[arr.length];
int k = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 3 == 0 || arr[i] % 10 == 3 || arr[i] / 10 == 3) {
count++;
}
else {
b[k++] = arr[i];
}
}
return b;
}
当我尝试运行测试用例时它失败了。该怎么办?
Testcase Pass/Fail Parameters Actual Output Expected Output
#1 Fail '{24,27,30,31,34,37,40,42}' {40,0,0,0,0,0,0,0} {40}
最佳答案
返回
return Arrays.copyOf(b, k); // Instead of your return statement.
这会将数组修剪到所需的长度。
如果不能导入其他包,可以试试,
int retArr[] = new int[k];
System.arraycopy(b, 0, retArr, 0, k);
return retArr;
如果那也不可能,你可以使用,
int retArr[] = new int[k];
for (int i = 0; i < k; i++)
retArr[i] = b[i];
return retArr;
关于java - 从数组中删除所有元素,这些元素要么是 3 的倍数,要么其中包含数字 3。例如13 和 15 都将被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32243514/