好的,所以我正在尝试完成 codewars 中的任务,它准确地说:
“你得到一个数组数组。如果你按数组的长度对数组进行排序,你会看到它们的长度值是连续的。但是缺少一个数组!
您必须编写一个方法,返回缺失数组的长度。
示例:[[1, 2], [4, 5, 1, 1], [1], [5, 6, 7, 8, 9]] --> 3
如果数组数组为 null/nil 或为空,则该方法应返回 0。
当数组中的数组为 null 或空时,该方法也应该返回 0!总会有一个缺失的元素,它的长度总是在给定的数组之间。"
我写了这样的代码:
package codewars;
import java.util.ArrayList;
import java.util.Collections;
public class CodewarsMissingArrays {
static int wynik = 0;
public static int getLengthOfMissingArray(Object[][] arrayOfArrays)
{
if (arrayOfArrays.length == 0) {
return wynik = 0;
} else {
ArrayList<Integer> lista = new ArrayList<Integer>();
for (int y = 0; y < arrayOfArrays.length; y++) {
if (arrayOfArrays[y].length == 0){
return wynik = 0;
} else {
lista.add(arrayOfArrays[y].length);
}
}
Collections.sort(lista);
for ( int x = lista.size() - 1; x >= 0 ; x--) {
if ( lista.get(x) - lista.get(x - 1) != 1 ) {
wynik = lista.get(x) - 1;
return wynik;
}
}
}
return wynik;
}
}
和测试类:
package codewars;
public class CodewarsTest {
public static void main(String[] args) {
System.out.println(CodewarsMissingArrays.getLengthOfMissingArray(new Object[][] { new Object[] { 1, 2 }, new Object[] { 4, 5, 1, 1 }, new Object[] { 1 }, new Object[] { 5, 6, 7, 8, 9 }} ));
}
}
在本地它工作正常,但 Kata 返回 NullPointerException:
java.lang.NullPointerException
at Kata.getLengthOfMissingArray(Kata.java:13)
at KataTests.BasicTests(KataTests.java:19)
而且我不知道可能出了什么问题,我认为它可能与 arrayOfArrays 对象有关,但我不知道究竟可能出了什么问题。
你能帮助我吗?