我正在训练Codility,并执行训练任务。目前尚不清楚如何处理错误的输入。他们的测试只是失败。
给出一个带有数字的数组,例如-1,2,3,5-查找缺少的数字4。
处理诸如空数组或具有1个元素的数组之类的输入的正确方法是什么?
如果一个或多个元素尽管不是数字,该怎么办呢?
结果测试似乎不接受未定义或-1。
答案 0 :(得分:0)
始终考虑以下假设:N在0 ... 100,000范围内,因此您的代码必须处理空数组和单数数组。
例如,[1]应该返回2(范围为1 ... N + 1),[2]应该返回1,[]应该返回1(范围现在为1 ... 0 + 1)
您可以在项目的第二个文件中添加案例,但是您需要自己评估结果。 我下面的代码以100%的结果通过。 对于无效案例,我将返回0,尽管在问题描述中并未明确指出该数字,并且可能未进行评估。
function solution(A) {
let values=[];
for(let i=0;i<A.length;i++){
values[A[i]]=1;
}
for(let i=1;i<(A.length+2);i++){
if(values[i]===undefined){
return i;
}
}
return 0;
}