Пытаясь решить эту проблему на codility рыба вызов Я не могу понять, почему не все тесты пройдены моим кодом.
function solution($A, $B) {
// write your code in PHP7.0
$stack =[];
foreach($A as $key =>$value) {
if(empty($stack)){
array_push($stack,$key);
}
else if($B[count($stack)-1] == 1 && $B[$key]==0 )
{
if($value > $A[count($stack)-1])
{
array_pop($stack);
array_push($stack,$key);
}
}
else array_push($stack,$key);
}
return count($stack);
}
Попробуй это:
function solution($A, $B) {
// write your code in PHP7.0
$stack =[];
foreach($A as $key =>$value) {
if(empty($stack)){
array_push($stack,$key);
}
else if($B[count($stack)-1] == 1 && $B[$key]==0 )
{
while(true) {
if($value > $A[count($stack)-1] && !empty($stack) && $B[count($stack)-1] == 1)
{
array_pop($stack);
}
else break;
}
array_push($stack,$key);
}
else array_push($stack,$key);
}
return count($stack);
}
Других решений пока нет …