Replace with Biggest

Replace with Biggest

You are given a list of integers data. Replace every element in it with the biggest element among the elements to its strict right (not including current element). The last element should be replaced with -1. Return modified sequence as any Iterable.

Take a look at the following example:

[17, 18, 5, 4, 6, 1] -> [18, 6, 6, 6, 1, -1]

Explanation:

  • data1[0] --> the greatest element to the right of data[0] is element at index 1 - 18;
  • data1[1] --> -//- at index 4 - 6;
  • data1[2] --> -//- at index 4 - 6;
  • data1[3] --> -//- at index 4 - 6;
  • data1[4] --> -//- at index 5 - 1;
  • data1[5] --> there are no elements to the right of element with index 5, so we put -1.

Input: A list of integers.

Output: A list or another Iterable (tuple, iterator, generator) of integers.

Examples:

assert list(replace_biggest([17, 18, 5, 4, 6, 1])) == [18, 6, 6, 6, 1, -1]
assert list(replace_biggest([1, 2, 3, 4, 5, 6])) == [6, 6, 6, 6, 6, -1]
assert list(replace_biggest([1, 1, 1])) == [1, 1, -1]