java - 从数组中删除所有元素,这些元素要么是 3 的倍数,要么其中包含数字 3。例如13 和 15 都将被删除

标签 java

代码如下:

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/

相关文章:

java - Ubuntu 上的 JDK 1.2

java - 在单核系统上拥有多个线程还能提高性能吗?

java - 如何在 spring webflux 响应式(Reactive) websocket 中发送列表

java - 在 Java 中使用 .NET Web 服务的最佳方式

java - 走出while循环

java - boolean 运算技巧

java - 将包内容读入类数组中

java - 识别给定文本字符串中所有类型的重复

java - 如何从 List<Integer> 中获取 IntStream?

java - Spring Kafka- 试图了解事物在幕后是如何工作的