# Smallest index such that there are no 0 or 1 to its right

• Difficulty Level : Basic
• Last Updated : 09 Jun, 2022

Given a binary array of N numbers. The task is to find the smallest index such that there are either no 1’s or 0’s to the right of the index.
Note: The array will have at least one 0 and one 1.
Examples:

Input: a[] = {1, 1, 1, 0, 0, 1, 0, 1, 1}
Output:
At 6th index, there are no 0’s to the right of the index.
Input: a[] = {0, 1, 0, 0, 0}
Output:

Approach: Store the rightmost occurring index of both 1 and 0 and return the minimum of both.
Below is the implementation of the above approach:

## C++

 `// C++ program to implement``// the above approach``#include ``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

 ``

## Javascript

 ``

Output:

`6`

Time Complexity: O(N)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up