DEV Community

Irina
Irina

Posted on • Edited on

Leetcode #1299 - Replace Elements with Greatest Element on Right Side

Hello Dev Community,
I'm posting my solution to the Leetcode problem #1299 - Replace Elements with Greatest Element on Right Side Easy

Problem description:

Given an array arr, replace every element in that array with the greatest element among the elements to its right, and replace the last element with -1.
After doing so, return the array.

var replaceElements = function (arr) {
    let res = new Array(arr.length);
    let max = 0;
    res[arr.length - 1] = -1;

    for (let i = arr.length - 1; i > 0; i--) {
        max = Math.max(arr[i], max);
        res[i - 1] = max;
    }

    return res;
};

console.log(replaceElements([17, 18, 5, 4, 6, 1])); 
// [ 18, 6, 6, 6, 1, -1 ]
Enter fullscreen mode Exit fullscreen mode

Method - Two pointers (i and i-1)
Complexity - Time O(n) | Space O(n)

Leetcode stats:
Runtime - beats 78.21%
Memory - beats 60.18%

I welcome your comments or suggestions!

Top comments (0)