StoneWall   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 6
c 1
b 0
f 0
lcom 0
cbo 0
dl 0
loc 22
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B solution() 0 19 6
1
<?php
2
3
namespace Lesson05;
4
5
class StoneWall
6
{
7
    public function solution($H)
8
    {
9
        $N = count($H);
10
        $blocks = 0;
11
        $stack = [];
12
        $stack_position = 0;
13
        for ($i = 0; $i < $N; $i++) {
14
            while ($stack_position > 0 && $stack[$stack_position - 1] > $H[$i]) {
15
                $stack_position--;
16
            }
17
            if (!($stack_position > 0 && $stack[$stack_position - 1] == $H[$i])) {
18
                $blocks++;
19
                $stack[$stack_position] = $H[$i];
20
                $stack_position++;
21
            }
22
        }
23
24
        return $blocks;
25
    }
26
}
27