Fish::solution()   C
last analyzed

Complexity

Conditions 7
Paths 4

Size

Total Lines 27
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 27
rs 6.7272
cc 7
eloc 19
nc 4
nop 2
1
<?php
2
3
namespace Lesson05;
4
5
class Fish
6
{
7
    public function solution($A, $B)
8
    {
9
        $N = count($A);
10
        $stack = [];
11
        for ($i = 0; $i < $N; $i++) {
12
            $size = $A[$i];
13
            $direction = $B[$i];
14
            if ($i == 0) {
15
                array_push($stack, [$size, $direction]);
16
            } else {
17
                $v = array_pop($stack);
18
                while ($v[1] > $direction) {
19
                    if ($v[0] > $size) {
20
                        $size = $v[0];
21
                        $direction = $v[1];
22
                    }
23
                    $v = array_pop($stack);
24
                }
25
                if ($v !== null && $v[0] !== $size) {
26
                    array_push($stack, [$v[0], $v[1]]);
27
                }
28
                array_push($stack, [$size, $direction]);
29
            }
30
        }
31
32
        return count($stack);
33
    }
34
}
35