Reemplace cada elemento con el elemento más pequeño en su lado izquierdo

Dada una array de enteros, la tarea es reemplazar cada elemento con el elemento más pequeño en su lado izquierdo. 
Nota: Reemplace el primer elemento con -1 ya que no tiene ningún elemento a la izquierda. 
Ejemplos: 
 

Input: arr[] = {4, 5, 2, 1, 7, 6}
Output: -1 4 4 2 1 1
Since, 4 has no element in its left, so replace it by -1.
For 5, 4 is the smallest element in its left.
For 2, 4 is the smallest element in its left.
For 1, 2 is the smallest element in its left.
For 7, 1 is the smallest element in its left.
For 6, 1 is the smallest element in its left.

Input: arr[] = {3, 2, 5, 7, 1}
Output: -1 3 2 2 2

Acercarse: 
 

  1. Mantenga una variable min_ele que almacenará el elemento más pequeño.
  2. Inicialmente, min_ele será igual al elemento en el índice 0.
  3. Primero reemplace arr[0] con -1 y luego recorra la array
  4. Y luego reemplace el elemento con el valor min_ele y actualice min_ele si el elemento es más pequeño que min_ele.
  5. Imprime la array modificada.

A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program to Replace every
// element with the smaller element
// on its left side
#include <bits/stdc++.h>
using namespace std;
 
// Function to replace the elements
void ReplaceElements(int arr[], int n)
{
    // MIN value initialised
    // to element at 0th index
    int min_ele = arr[0];
    arr[0] = -1;
 
    for (int i = 1; i < n; ++i) {
 
        // If min_ele is smaller than arr[i]
        // then just replace arr[i] with min_ele
        if (min_ele < arr[i])
            arr[i] = min_ele;
 
 
        // Else if update the min_ele also
        else if (min_ele >= arr[i]) {
            int temp = arr[i];
            arr[i] = min_ele;
            min_ele = temp;
        }
    }
}
 
// Driver code
int main()
{
    int arr[] = { 4, 5, 2, 1, 7, 6 };
    int n = sizeof(arr) / sizeof(arr[0]);
 
    // Replace the elements
    // with the smaller element
    // on its left side
    ReplaceElements(arr, n);
 
    // Print the modified array
    for (int i = 0; i < n; ++i)
        cout << arr[i] << " ";
 
    return 0;
}

Java

// Java program to Replace every
// element with the smaller element
// on its left side
 
class GFG {
 
// Function to replace the elements
    static void ReplaceElements(int arr[], int n) {
        // MIN value initialised
        // to element at 0th index
        int min_ele = arr[0];
        arr[0] = -1;
 
        for (int i = 1; i < n; ++i) {
 
            // If min_ele is smaller than arr[i]
            // then just replace arr[i] with min_ele
            if (min_ele < arr[i]) {
                arr[i] = min_ele;
            } // Else if update the min_ele also
            else if (min_ele >= arr[i]) {
                int temp = arr[i];
                arr[i] = min_ele;
                min_ele = temp;
            }
        }
    }
 
// Driver code
    public static void main(String[] args) {
        int arr[] = {4, 5, 2, 1, 7, 6};
        int n = arr.length;
 
        // Replace the elements
        // with the smaller element
        // on its left side
        ReplaceElements(arr, n);
 
        // Print the modified array
        for (int i = 0; i < n; ++i) {
            System.out.print(arr[i] + " ");
        }
    }
}
 
// This code is contributed by Rajput-JI

Python3

# Python3 program to Replace every
# element with the smaller element
# on its left side
 
# Function to replace the elements
def ReplaceElements(arr, n):
 
    # MIN value initialised
    # to element at 0th index
    min_ele = arr[0]
    arr[0] = -1
 
    for i in range(1, n):
 
        # If min_ele is smaller than arr[i]
        # then just replace arr[i] with min_ele
        if (min_ele < arr[i]):
            arr[i] = min_ele
 
        # Else if update the min_ele also
        elif (min_ele >= arr[i]) :
            temp = arr[i]
            arr[i] = min_ele
            min_ele = temp
 
# Driver code
if __name__ == "__main__":
 
    arr = [ 4, 5, 2, 1, 7, 6 ]
    n = len (arr)
 
    # Replace the elements
    # with the smaller element
    # on its left side
    ReplaceElements(arr, n)
 
    # Print the modified array
    for i in range( n):
        print (arr[i], end = " ")
 
# This code is contributed
# by ChitraNayal

C#

// C# program to Replace every
// element with the smaller element
// on its left side
using System;
public class GFG {
 
// Function to replace the elements
    static void ReplaceElements(int []arr, int n) {
        // MIN value initialised
        // to element at 0th index
        int min_ele = arr[0];
        arr[0] = -1;
 
        for (int i = 1; i < n; ++i) {
 
            // If min_ele is smaller than arr[i]
            // then just replace arr[i] with min_ele
            if (min_ele < arr[i]) {
                arr[i] = min_ele;
            } // Else if update the min_ele also
            else if (min_ele >= arr[i]) {
                int temp = arr[i];
                arr[i] = min_ele;
                min_ele = temp;
            }
        }
    }
 
// Driver code
    public static void Main() {
        int []arr = {4, 5, 2, 1, 7, 6};
        int n = arr.Length;
 
        // Replace the elements
        // with the smaller element
        // on its left side
        ReplaceElements(arr, n);
 
        // Print the modified array
        for (int i = 0; i < n; ++i) {
            Console.Write(arr[i] + " ");
        }
    }
}
 
// This code is contributed by Rajput-JI

PHP

<?php
// PHP program to Replace every
// element with the smaller element
// on its left side
 
// Function to replace the elements
function ReplaceElements($arr, $n)
{
    // MIN value initialised
    // to element at 0th index
    $min_ele = $arr[0];
    $arr[0] = -1;
 
    for ($i = 1; $i < $n; ++$i)
    {
 
        // If min_ele is smaller than arr[i]
        // then just replace arr[i] with min_ele
        if ($min_ele < $arr[$i])
            $arr[$i] = $min_ele;
 
        // Else if update the min_ele also
        else if ($min_ele >= $arr[$i])
        {
            $temp = $arr[$i];
            $arr[$i] = $min_ele;
            $min_ele = $temp;
        }
    }
    return $arr;
}
 
// Driver code
$arr = array(4, 5, 2, 1, 7, 6);
$n = sizeof($arr);
 
// Replace the elements
// with the smaller element
// on its left side
$arr1 = ReplaceElements($arr, $n);
 
// Print the modified array
for ($i = 0; $i < $n; ++$i)
    echo $arr1[$i] . " ";
 
// This code is contributed
// by Akanksha Rai
?>

Javascript

<script>
      // JavaScript program to Replace every
      // element with the smaller element
      // on its left side
 
      // Function to replace the elements
      function ReplaceElements(arr, n)
      {
       
        // MIN value initialised
        // to element at 0th index
        var min_ele = arr[0];
        arr[0] = -1;
 
        for (var i = 1; i < n; ++i)
        {
         
          // If min_ele is smaller than arr[i]
          // then just replace arr[i] with min_ele
          if (min_ele < arr[i]) arr[i] = min_ele;
          // Else if update the min_ele also
          else if (min_ele >= arr[i])
          {
            var temp = arr[i];
            arr[i] = min_ele;
            min_ele = temp;
          }
        }
      }
 
      // Driver code
      var arr = [4, 5, 2, 1, 7, 6];
      var n = arr.length;
 
      // Replace the elements
      // with the smaller element
      // on its left side
      ReplaceElements(arr, n);
 
      // Print the modified array
      for (var i = 0; i < n; ++i) document.write(arr[i] + " ");
       
      // This code is contributed by rdtank.
    </script>
Producción: 

-1 4 4 2 1 1

 

Complejidad de tiempo: O(N)
 

Publicación traducida automáticamente

Artículo escrito por imdhruvgupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *