Lesson 2 – Counting Elements – MaxCounters (max_counter) demo task solution code written in php. Gives 100/100 score at the time of publishing. The description of the problem is copyrighted, so please see the following link for it: https://codility.com/demo/take-sample-test/max_counters
Solution in php:
function solution($N, $A){ $cond = $N + 1; $cur_max = 0; $last_upd = 0; $cnt_arr = array(); $cnt = count($A); for($i = 0; $i < $cnt; $i++){ $cur = $A[$i]; if($cur == $cond){ $last_upd = $cur_max; } else{ $pos = $cur - 1; if(!isset($cnt_arr[$pos])){ $cnt_arr[$pos] = 0; } if($cnt_arr[$pos] < $last_upd){ $cnt_arr[$pos] = $last_upd + 1; } else{ $cnt_arr[$pos] ++; } if($cnt_arr[$pos] > $cur_max){ $cur_max = $cnt_arr[$pos]; } } } for($i = 0; $i < $N; $i++){ if(!isset($cnt_arr[$i])){ $cnt_arr[$i] = 0; } if($cnt_arr[$i] < $last_upd){ $cnt_arr[$i] = $last_upd; } } return $cnt_arr; }
Given “AS IS”, can be ported from other languages from solutions found on the internet, please use with care.
Please note: we think that codility.com does not give a correct assessment of your real-world programming skills. For instance, reading the below would bring more understanding why: http://codility-test-questions.blogspot.com/2013/01/my-experience-with-codility-test.html