Forum Moderators: coopster
for($checkedIndian=$key-2; $indians[$checkedIndian]<$currentIndian ¦¦ $indians[$checkedIndian]>$indians[$checkedIndian+1]; $checkedIndian--)
Wont end. I get error:
Fatal error: Maximum execution time of 30 seconds exceeded
Here's the code:
function getHighestIndianPosition ($indians) {
$indians=array_reverse($indians, true);
foreach($indians as $key => $currentIndian){
$sees[$key]=1;
for($checkedIndian=$key-2; $indians[$checkedIndian]<$currentIndian
¦¦ $indians[$checkedIndian]>$indians[$checkedIndian+1]; $checkedIndian--){
$sees[$key]++;
}
if($sees[$key]>=$key-1){
return $key;
$findHighest=1;
break;
}
}
if($findHighest!=1){
$highestSees=0;
foreach($sees as $value){
if($value>$highestSees)$highestSees=$value;
}
$sees=array_flip($sees);
return $sees[$highestSees];
}
}
The reason i reversed the array is, that the thing needs to be as fast as possible, there will be a competiton later on, who's code works the fastest.
Kind regards,
R.
function getHighestIndianPosition ($indians) {
$indians=array_reverse($indians, true);
$highestSees=0;
foreach($indians as $key => $currentIndian){
$sees[$key]=1;
for($checkedIndian=$key-2; $checkedIndian>=0; $checkedIndian--){
if($currentIndian>$indians[$checkedIndian+1] ¦¦ $indians[$checkedIndian]>$indians[$checkedIndian+1])$sees[$key]++;
else break;
}
if($sees[$key]>$highestSees)$highestSees=$sees[$key];
if($sees[$key]>=$key-1 && $sees[$key]>=$highestSees){
return $key;
break;
}
}
$sees=array_flip($sees);
return $sees[$highestSees];}