Php 想知道codility.com测试用例是如何定义的吗?

Php 想知道codility.com测试用例是如何定义的吗?,php,Php,我在尝试Codibility.com。用于测试“PermMissingElem” 我写了一个PHP解决方案,它不是很好,但仍然适用于我所有的测试用例 Codibility只给了我20%的信息,告诉我一些失败的测试用例。这里有一些 例如: 空的和单的 空列表和单个元素0.050 s。运行时错误 测试程序意外终止 标准: 无效的结果类型,应为int。 第一次或最后一次缺失 第一个或最后一个元素缺少0.050秒。运行时错误 测试程序意外终止 标准: 无效的结果类型,应为int。 单曲 单元件0.050

我在尝试Codibility.com。用于测试“PermMissingElem”

我写了一个PHP解决方案,它不是很好,但仍然适用于我所有的测试用例

Codibility只给了我20%的信息,告诉我一些失败的测试用例。这里有一些

例如:
空的和单的
空列表和单个元素0.050 s。运行时错误 测试程序意外终止 标准: 无效的结果类型,应为int。

第一次或最后一次缺失
第一个或最后一个元素缺少0.050秒。运行时错误 测试程序意外终止 标准: 无效的结果类型,应为int。

单曲
单元件0.050 s。运行时错误 测试程序意外终止 标准: 无效的结果类型,应为int

我知道这个测试在这里已经解决了,我只是想知道他们的测试到底意味着什么,为什么我的解决方案在他们身上失败了

以下是我的解决方案PHP代码:

function solution($A) {
    $noe = count($A);
    if($noe == 0)
        return 1;
    for($i=1;$i<=$noe;$i++)
    {
        if(!in_array($i,$A,TRUE))
            return $i;
    }
}
函数解决方案($A){
$noe=计数($A);
如果($noe==0)
返回1;

对于($i=1;$i当缺少最后一个元素时,您的解决方案不会返回任何结果。例如,对于数组[1],正确的结果是2,但您的函数不会返回任何结果。 另一个例子:使用数组[1,2],您的解决方案不会返回任何内容,但应该返回3

我认为修复此错误不会有任何问题。虽然会有性能问题。

这是C#,但我的程序提供了100%正确率和100%性能

Array.Sort(A);
if(A.Length == 0 )
{          
    return 1;                     
}      
else      
{  
    for(int i=0;i<A.Length;i++)   
    {    
        if(A[i] != i+1)    
        {
            return i+1;    
        }

    }
}

return A.Length + 1;
Array.Sort(A);
如果(A.Length==0)
{          
返回1;
}      
其他的
{  

对于(int i=0;i,这是我在codility中针对PermMissingElem的100%php解决方案,非常简单,只需正确命名变量即可:

function solution($A) {
// write your code in PHP5.5
sort($A);
$index = 0;
foreach($A as $value)
{
    $expected = $index+1;
    if ($expected != $value) return $expected;
    $index++;
}
return $index+1;
}