对于LOOP花时间在PHP中执行

时间:2014-04-14 07:00:11

标签: php for-loop time-complexity

我正在codility.com上进行演示测试。

我尝试了以下PHP测试代码:

function solution($A) {
    $min = 0;
    $size = count($A)-1;
    for($i=0;$i<5;$i++){
        if($i=0)
            $min=$A[0];
    }
    return $min;
}

脚本需要大约3.03秒来执行,它们将最大执行时间设置为2.00秒。

如果我评论FOR LOOP它可以正常工作。

有什么想法吗?

4 个答案:

答案 0 :(得分:4)

你在这里覆盖你的$ i变量:

if($i=0)

应该是

if($i==0)

答案 1 :(得分:1)

因为你写了if($i=0)它是赋值运算符而不是比较运算符。使其正确if($i==0)

function solution($A) {
    $min = 0;
    $size = count($A)-1;
    for($i=0;$i<5;$i++){
        if($i==0)
            $min=$A[0];
    }
    return $min;
}

答案 2 :(得分:0)

你的for循环看起来像这样:

for($i = 0; $i < 5; $i++)

这意味着:将$ i初始化为0,直到$ i为5或更大,执行循环并递增$ i。

但是,你写了这个:

if($i = 0)

要比较$ i和0,您应该使用==,而不是=。这将$ i设置为0. if不执行,因为0等于false。然后$ i递增到1. 1小于5,因此循环永远执行。

使用if($i == 0)进行修复。

答案 3 :(得分:0)

每个人都指出哪个if($i=0)应该是if($i==0)

但我有一个担忧。为什么只有返回$min $A[0]时会出现for循环?