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: 6
En el sexto índice, no hay ceros a la derecha del índice.
Entrada: a[] = {0, 1, 0, 0, 0}
Salida: 1
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)