Lesson 7 – Maximum slice problem – MaxDoubleSliceSum 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_double_slice_sum
Solution in php:
function solution($A) { $i = $n = 0; $n = count($A); if(3 == $n){ return 0; } $max_sum_end = array_fill(0, $n, 0); $max_sum_start = array_fill(0, $n, 0); for($i = 1; $i < ($n - 1); $i++){ $max_sum_end[$i] = max(0, $max_sum_end[$i - 1] + $A[$i]); } for($i = $n - 2; $i > 0; $i--){ $max_sum_start[$i] = max(0, $max_sum_start[$i + 1] + $A[$i]); } $temp = $maxvalue = 0; for($i = 1; $i < ($n - 1); $i++){ $temp = $max_sum_end[$i - 1] + $max_sum_start[$i + 1]; if($temp > $maxvalue){ $maxvalue = $temp; } } return $maxvalue; }
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://x20x.co.uk/2014/02/why-i-refuse-to-use-codility-and-so-should-you/