Índice más pequeño tal que no hay 0 o 1 a su derecha

Dada una array binaria de N números. La tarea es encontrar el índice más pequeño tal que no haya 1 ni 0 a la derecha del índice. 
Nota : La array tendrá al menos un 0 y un 1. 
Ejemplos: 
 

Entrada: a[] = {1, 1, 1, 0, 0, 1, 0, 1, 1} 
Salida:
En el sexto índice, no hay ceros a la derecha del índice. 
Entrada: a[] = {0, 1, 0, 0, 0} 
Salida:
 

Enfoque : almacene el índice que ocurre más a la derecha de 1 y 0 y devuelva el mínimo de ambos. 
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program to implement
// the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the smallest index
// such that there are no 0 or 1 to its right
int smallestIndex(int a[], int n)
{
    // Initially
    int right1 = 0, right0 = 0;
 
    // Traverse in the array
    for (int i = 0; i < n; i++) {
 
        // Check if array element is 1
        if (a[i] == 1)
            right1 = i;
 
        // a[i] = 0
        else
            right0 = i;
    }
 
    // Return minimum of both
    return min(right1, right0);
}
// Driver code
int main()
{
 
    int a[] = { 1, 1, 1, 0, 0, 1, 0, 1, 1 };
    int n = sizeof(a) / sizeof(a[0]);
    cout << smallestIndex(a, n);
 
    return 0;
}

Java

// Java program to implement
// the above approach
class GFG
{
     
// Function to find the smallest index
// such that there are no 0 or 1 to its right
static int smallestIndex(int []a, int n)
{
    // Initially
    int right1 = 0, right0 = 0;
 
    // Traverse in the array
    for (int i = 0; i < n; i++)
    {
 
        // Check if array element is 1
        if (a[i] == 1)
            right1 = i;
 
        // a[i] = 0
        else
            right0 = i;
    }
 
    // Return minimum of both
    return Math.min(right1, right0);
}
 
// Driver code
public static void main(String[] args)
{
    int []a = { 1, 1, 1, 0, 0, 1, 0, 1, 1 };
    int n = a.length;
    System.out.println(smallestIndex(a, n));
}
}
 
// This code is contributed
// by Code_Mech.

Python3

# Python 3 program to implement
# the above approach
 
# Function to find the smallest
# index such that there are no
# 0 or 1 to its right
def smallestIndex(a, n):
     
    # Initially
    right1 = 0
    right0 = 0
 
    # Traverse in the array
    for i in range(n):
         
        # Check if array element is 1
        if (a[i] == 1):
            right1 = i
 
        # a[i] = 0
        else:
            right0 = i
 
    # Return minimum of both
    return min(right1, right0)
 
# Driver code
if __name__ == '__main__':
    a = [1, 1, 1, 0, 0, 1, 0, 1, 1]
    n = len(a)
    print(smallestIndex(a, n))
     
# This code is contributed by
# Surendra_Gangwar

C#

// C# program to implement
// the above approach
using System;
class GFG
{
     
// Function to find the smallest index
// such that there are no 0 or 1 to its right
static int smallestIndex(int []a, int n)
{
    // Initially
    int right1 = 0, right0 = 0;
 
    // Traverse in the array
    for (int i = 0; i < n; i++)
    {
 
        // Check if array element is 1
        if (a[i] == 1)
            right1 = i;
 
        // a[i] = 0
        else
            right0 = i;
    }
 
    // Return minimum of both
    return Math.Min(right1, right0);
}
 
// Driver code
public static void Main()
{
    int []a = { 1, 1, 1, 0, 0, 1, 0, 1, 1 };
    int n = a.Length;
    Console.Write(smallestIndex(a, n));
}
}
 
// This code is contributed
// by Akanksha Rai

PHP

<?php
// PHP program to implement
// the above approach
 
// Function to find the smallest index
// such that there are no 0 or 1 to its right
function smallestIndex($a, $n)
{
    // Initially
    $right1 = 0; $right0 = 0;
 
    // Traverse in the array
    for ($i = 0; $i < $n; $i++)
    {
 
        // Check if array element is 1
        if ($a[$i] == 1)
            $right1 = $i;
 
        // a[i] = 0
        else
            $right0 = $i;
    }
 
    // Return minimum of both
    return min($right1, $right0);
}
 
// Driver code
$a = array(1, 1, 1, 0, 0, 1, 0, 1, 1);
$n = sizeof($a);
echo smallestIndex($a, $n);
 
// This code is contributed by Akanksha Rai
?>

Javascript

<script>
// Javascript program to implement
// the above approach
 
    // Function to find the smallest index
    // such that there are no 0 or 1 to its right
    function smallestIndex(a, n)
    {
     
        // Initially
        let right1 = 0, right0 = 0;
 
        // Traverse in the array
        let i;
        for (i = 0; i < n; i++)
        {
 
            // Check if array element is 1
            if (a[i] == 1)
                right1 = i;
 
            // a[i] = 0
            else
                right0 = i;
        }
 
        // Return minimum of both
        return Math.min(right1, right0);
    }
     
    // Driver Code
     
    var a = [ 1, 1, 1, 0, 0, 1, 0, 1, 1 ];
    let n = a.length;
    document.write(smallestIndex(a, n));
     
    // This code is contributed by ajaykrsharma132.
</script>
Producción: 

6

 

Complejidad de tiempo : O(N)

Espacio Auxiliar: O(1)
 

Publicación traducida automáticamente

Artículo escrito por Striver 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 *