好的,所以我正试图从代码战中完成任务,完全说:
“你得到一个数组数组。 如果按长度对数组进行排序,您将看到它们的长度值是连续的。 但是缺少一个阵列!
你必须编写一个返回缺失数组长度的方法。
实施例: [[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对象有关,但我不知道究竟可能出现什么问题。
你能帮助我吗?