Each day I solve several coding challenges and puzzles from Codr's ranked mode. The goal is to reach genius rank, along the way I explain how I solve them. You do not need any programming background to get started, and you will learn a ton of new and interesting things as you go.
Here's a new challenge with quite a lot of code, but only one bug that needs fixing 💧. You can solve this in several ways, the fastest method is by tracking variables, there are only a few potential variables that would fit the bug 💧. Both LM and RM
are already used, and 💧 is unlikely to be any of these because those are arrays, and 💧 isn't used in an array-like fashion. The variable max
appears to keep track of the max value, so 💧 isn't likely to be max
, because max
is no longer relevant at that stage.
The only remaining variable that's pretty much unused is V
, it's also the value that the function returns, and since A = 4
, then V
cannot be zero; 💧 is very likely to be V
.
You can take a few minutes to analyze the code closer, to understand what is going on. In a nutshell it's computing the sum of trap heights in a given array. A trap in this code, is identified by a value that's surrounded by two larger values (left and right of itself), as indicated by the arrow on the image below. In pseudo-code: TRAPi = min(left, right) - height
. In this case there is only one trap, so A = 4
, it is computed as such: A= V= min(6, 6) - 2
Join me on the Road to Genius and upgrade your programming skills, at https://nevolin.be/codr/
Top comments (0)