DEV Community

Cover image for Solution: Lario and Muigi Pipe Problem
Susan Githaiga
Susan Githaiga

Posted on • Updated on

Solution: Lario and Muigi Pipe Problem

Issue
Looks like some hoodlum plumber and his brother has been running around and damaging your stages again.

The pipes connecting your level's stages together need to be fixed before you receive any more complaints.

The pipes are correct when each pipe after the first is 1 more than the previous one.

Task
Given a list of unique numbers sorted in ascending order, return a new list so that the values increment by 1 for each index from the minimum value up to the maximum value (both included).

Example
Input: 1,3,5,6,7,8 Output: 1,2,3,4,5,6,7,8

Solution Breakdown

Step 1:

First, we have to find the maximum and minimum value. I know what you're thinking, we can use Math.max and Math.min.

In this scenario, that's not the case. It is a valid approach but it's unnecessary since the input list has already been sorted in ascending order.

When sorted, it is a guarantee that the element at index 0(ie numbers[0]) is the smallest value, same as the last element. Therefore, directly accessing the first and last elements is more efficient and straightforward.

So, we find the number at index 0 and the last one and initialize some variables to store these values for us:



    let minVal = numbers[0];
    let maxVal = numbers[numbers.length - 1];


Enter fullscreen mode Exit fullscreen mode

Step 2:

After that, we create an empty array to store the new sorted values:



    let newNums = [];


Enter fullscreen mode Exit fullscreen mode

Step 3:

Loop through the entire list

let i = minVal; initializes the loop counter i to the value of minVal. This is where our loop will start.

i <= maxVal; is the loop condition. The loop will continue running as long as i is less than or equal to maxVal. Once i exceeds maxVal, the loop stops.

i++ serves as our incrementor. After each iteration of our for loop, the value of i is increased by 1

Step 4:

Following that, we append the incremented value of i to our empty array newNums using the array.push() method.

Then, we return the final value of our array newNums.

Final Solution

Image description

I hope this article helps. If you like the article, please leave a like and feel free to leave any concerns on the comment section. That is all for today.

Top comments (0)