Encuentre el primer elemento repetido en una array de enteros

Dada una array de enteros, encuentre el primer elemento que se repite en ella. Necesitamos encontrar el elemento que ocurre más de una vez y cuyo índice de primera aparición es el más pequeño. 

Ejemplos: 

C++

/* C++ program to find first repeating element in arr[] */
#include<bits/stdc++.h>
using namespace std;
 
// This function prints the first repeating element in arr[]
void printFirstRepeating(int arr[], int n)
{
    // Initialize index of first repeating element
    int min = -1;
 
    // Creates an empty hashset
    set<int> myset;
 
    // Traverse the input array from right to left
    for (int i = n - 1; i >= 0; i--)
    {
        // If element is already in hash set, update min
        if (myset.find(arr[i]) != myset.end())
            min = i;
 
        else   // Else add element to hash set
            myset.insert(arr[i]);
    }
 
    // Print the result
    if (min != -1)
        cout << "The first repeating element is " << arr[min];
    else
        cout << "There are no repeating elements";
}
 
// Driver method to test above method
int main()
{
    int arr[] = {10, 5, 3, 4, 3, 5, 6};
 
    int n = sizeof(arr) / sizeof(arr[0]);
    printFirstRepeating(arr, n);
}
//This article is contributed by Chhavi

Java

/* Java program to find first repeating element in arr[] */
import java.util.*;
 
class Main
{
    // This function prints the first repeating element in arr[]
    static void printFirstRepeating(int arr[])
    {
        // Initialize index of first repeating element
        int min = -1;
 
        // Creates an empty hashset
        HashSet<Integer> set = new HashSet<>();
 
        // Traverse the input array from right to left
        for (int i=arr.length-1; i>=0; i--)
        {
            // If element is already in hash set, update min
            if (set.contains(arr[i]))
                min = i;
 
            else   // Else add element to hash set
                set.add(arr[i]);
        }
 
        // Print the result
        if (min != -1)
          System.out.println("The first repeating element is " + arr[min]);
        else
          System.out.println("There are no repeating elements");
    }
 
    // Driver method to test above method
    public static void main (String[] args) throws java.lang.Exception
    {
        int arr[] = {10, 5, 3, 4, 3, 5, 6};
        printFirstRepeating(arr);
    }
}

Python3

# Python3 program to find first repeating
# element in arr[]
 
# This function prints the first repeating
# element in arr[]
def printFirstRepeating(arr, n):
 
    # Initialize index of first repeating element
    Min = -1
 
    # Creates an empty hashset
    myset = dict()
 
    # Traverse the input array from right to left
    for i in range(n - 1, -1, -1):
     
        # If element is already in hash set,
        # update Min
        if arr[i] in myset.keys():
            Min = i
 
        else: # Else add element to hash set
            myset[arr[i]] = 1
     
    # Print the result
    if (Min != -1):
        print("The first repeating element is",
                                      arr[Min])
    else:
        print("There are no repeating elements")
 
# Driver Code
arr = [10, 5, 3, 4, 3, 5, 6]
 
n = len(arr)
printFirstRepeating(arr, n)
 
# This code is contributed by Mohit kumar 29

C#

using System;
using System.Collections.Generic;
 
/* C# program to find first repeating element in arr[] */
 
public class GFG
{
    // This function prints the first repeating element in arr[]
    public static void printFirstRepeating(int[] arr)
    {
        // Initialize index of first repeating element
        int min = -1;
 
        // Creates an empty hashset
        HashSet<int> set = new HashSet<int>();
 
        // Traverse the input array from right to left
        for (int i = arr.Length - 1; i >= 0; i--)
        {
            // If element is already in hash set, update min
            if (set.Contains(arr[i]))
            {
                min = i;
            }
 
            else // Else add element to hash set
            {
                set.Add(arr[i]);
            }
        }
 
        // Print the result
        if (min != -1)
        {
          Console.WriteLine("The first repeating element is " + arr[min]);
        }
        else
        {
          Console.WriteLine("There are no repeating elements");
        }
    }
 
    // Driver method to test above method
 
    public static void Main(string[] args)
    {
        int[] arr = new int[] {10, 5, 3, 4, 3, 5, 6};
        printFirstRepeating(arr);
    }
}
 
// This code is contributed by Shrikant13

Javascript

<script>
 
// Javascript program to find first
// repeating element in arr[]
     
// This function prints the first
// repeating element in arr[]
function  printFirstRepeating(arr)
{
     
    // Initialize index of first
    // repeating element
    let min = -1;
 
    // Creates an empty hashset
    let set = new Set();
 
    // Traverse the input array from right to left
    for(let i = arr.length - 1; i >= 0; i--)
    {
         
        // If element is already in
        // hash set, update min
        if (set.has(arr[i]))
            min = i;
             
        // Else add element to hash set
        else 
            set.add(arr[i]);
    }
 
    // Print the result
    if (min != -1)
      document.write("The first repeating element is " +
                     arr[min]);
    else
      document.write("There are no repeating elements");
}
 
// Driver code
let arr = [ 10, 5, 3, 4, 3, 5, 6 ];
 
printFirstRepeating(arr);
 
// This code is contributed by unknown2108
     
</script>

C++

/* C++ program to find first
repeating element in arr[] */
#include <bits/stdc++.h>
using namespace std;
 
// This function prints the
// first repeating element in arr[]
void printFirstRepeating(int arr[], int n)
{
     
    // This will set k=1, if any
    // repeating element found
    int k = 0;
 
    // max = maximum from (all elements & n)
    int max = n;
    for (int i = 0; i < n; i++)
        if (max < arr[i])
            max = arr[i];
 
    // Array a is for storing
    // 1st time occurrence of element
    // initialized by 0
    int a[max + 1] = {};
 
    // Store 1 in array b
    // if element is duplicate
    // initialized by 0
    int b[max + 1] = {};
 
    for (int i = 0; i < n; i++)
    {
     
        // Duplicate element found
        if (a[arr[i]])
        {
            b[arr[i]] = 1;
            k = 1;
            continue;
        }
        else
            // storing 1st occurrence of arr[i]
            a[arr[i]] = i+1;
    }
 
    if (k == 0)
        cout << "No repeating element found" << endl;
    else
    {
        int min = max + 1;
       
        // trace array a & find repeating element
        // with min index
        for (int i = 0; i < max + 1; i++)
            if (a[i] && min > a[i] && b[i])
                min = a[i];
        cout << arr[min-1];
    }
    cout << endl;
}
 
// Driver method to test above method
int main()
{
    int arr[] = { 10, 5, 3, 4, 3, 5, 6 };
 
    int n = sizeof(arr) / sizeof(arr[0]);
    printFirstRepeating(arr, n);
}

Java

/* Java program to find first
repeating element in arr[] */
public class GFG
{
 
  // This function prints the
  // first repeating element in arr[]
  static void printFirstRepeating(int[] arr, int n)
  {
 
    // This will set k=1, if any
    // repeating element found
    int k = 0;
 
    // max = maximum from (all elements & n)
    int max = n;
    for (int i = 0; i < n; i++)
      if (max < arr[i])
        max = arr[i];
 
    // Array a is for storing
    // 1st time occurrence of element
    // initialized by 0
    int[] a = new int[max + 1];
 
    // Store 1 in array b
    // if element is duplicate
    // initialized by 0
    int[] b = new int[max + 1];
    for (int i = 0; i < n; i++)
    {
 
      // Duplicate element found
      if (a[arr[i]] != 0)
      {
        b[arr[i]] = 1;
        k = 1;
        continue;
      }
      else
        // storing 1st occurrence of arr[i]
        a[arr[i]] = i+1;
    }
 
    if (k == 0)
      System.out.println("No repeating element found");
    else
    {
      int min = max + 1;
 
      // trace array a & find repeating element
      // with min index
      for (int i = 0; i < max + 1; i++)
        if (a[i] != 0 && min > a[i] && b[i] != 0)
          min = a[i];
      System.out.print(arr[min-1]);
    }
    System.out.println();
  }
 
  // Driver code
  public static void main(String[] args)
  {
    int[] arr = { 10, 5, 3, 4, 3, 5, 6 };
 
    int n = arr.length;
    printFirstRepeating(arr, n);
  }
}
 
// This code is contributed by divyesh072019

Python3

# Python3 program to find first 
# repeating element in arr[]
 
# This function prints the 
# first repeating element in arr[]
def printFirstRepeating(arr, n):
     
    # This will set k=1, if any 
    # repeating element found
    k = 0
 
    # max = maximum from (all elements & n)
    max = n
     
    for i in range(n):
        if (max < arr[i]):
            max = arr[i]
     
    # Array a is for storing 
    # 1st time occurrence of element
    # initialized by 0
    a = [0 for i in range(max + 1)]
 
    # Store 1 in array b 
    # if element is duplicate
    # initialized by 0
    b = [0 for i in range(max + 1)]
 
    for i in range(n):
 
        # Duplicate element found
        if (a[arr[i]]):
            b[arr[i]] = 1
            k = 1
            continue
        else:
 
            # Storing 1st occurrence of arr[i]
            a[arr[i]] = i+1
 
    if (k == 0):
        print("No repeating element found")
    else:
        min = max + 1
 
        for i in range(max + 1):
             
            # Trace array a & find repeating
            # element with min index
            if (a[i] and (min > (a[i])) and b[i]):
                min = a[i]
                 
        print(arr[min-1])
 
# Driver code
arr = [ 10, 5, 3, 4, 3, 5, 6 ]
n = len(arr)
 
printFirstRepeating(arr, n)
 
# This code is contributed by avanitrachhadiya2155

C#

/* C# program to find first
repeating element in arr[] */
using System;
class GFG
{
     
    // This function prints the
    // first repeating element in arr[]
    static void printFirstRepeating(int[] arr, int n)
    {
          
        // This will set k=1, if any
        // repeating element found
        int k = 0;
      
        // max = maximum from (all elements & n)
        int max = n;
        for (int i = 0; i < n; i++)
            if (max < arr[i])
                max = arr[i];
      
        // Array a is for storing
        // 1st time occurrence of element
        // initialized by 0
        int[] a = new int[max + 1];
      
        // Store 1 in array b
        // if element is duplicate
        // initialized by 0
        int[] b = new int[max + 1];
      
        for (int i = 0; i < n; i++)
        {
          
            // Duplicate element found
            if (a[arr[i]] != 0)
            {
                b[arr[i]] = 1;
                k = 1;
                continue;
            }
            else
                // storing 1st occurrence of arr[i]
                a[arr[i]] = i+1;
        }
      
        if (k == 0)
            Console.WriteLine("No repeating element found");
        else
        {
            int min = max + 1;
            
            // trace array a & find repeating element
            // with min index
            for (int i = 0; i < max + 1; i++)
                if ((a[i] != 0) && min > a[i] && (b[i] != 0))
                    min = a[i];
            Console.Write(arr[min-1]);
        }
        Console.WriteLine();
    }
 
  // Driver code
  static void Main()
  {
    int[] arr = { 10, 5, 3, 4, 3, 5, 6 };
  
    int n = arr.Length;
    printFirstRepeating(arr, n);
  }
}
 
// This code is contributed by divyeshrabadiya07.

Javascript

<script>
/* javascript program to find first
repeating element in arr */
  
 
    // This function prints the
    // first repeating element in arr
    function printFirstRepeating(arr , n) {
 
        // This will set k=1, if any
        // repeating element found
        var k = 0;
 
        // max = maximum from (all elements & n)
        var max = n;
        for (i = 0; i < n; i++)
            if (max < arr[i])
                max = arr[i];
 
        // Array a is for storing
        // 1st time occurrence of element
        // initialized by 0
        var a = Array(max + 1).fill(0);
 
        // Store 1 in array b
        // if element is duplicate
        // initialized by 0
        var b = Array(max + 1).fill(0);
        for (var i = 0; i < n; i++) {
 
            // Duplicate element found
            if (a[arr[i]] != 0) {
                b[arr[i]] = 1;
                k = 1;
                continue;
            } else
                // storing 1st occurrence of arr[i]
                a[arr[i]] = i+1;
        }
 
        if (k == 0)
            document.write("No repeating element found");
        else {
            var min = max + 1;
 
            // trace array a & find repeating element
            // with min index
            for (i = 0; i < max + 1; i++)
                if (a[i] != 0 && min > a[i] && b[i] != 0)
                    min = a[i];
            document.write(arr[min-1]);
        }
        document.write("<br/>");
    }
 
    // Driver code
     
        var arr = [ 10, 5, 3, 4, 3, 5, 6 ];
 
        var n = arr.length;
        printFirstRepeating(arr, n);
 
// This code is contributed by todaysgaurav
</script>

C++

#include <bits/stdc++.h>
using namespace std;
int firstRepeated(int arr[], int n)
{
    int max = 0;
    for (int x = 0; x < n; x++) {
        if (arr[x] > max) {
            max = arr[x];
        }
    }
    int temp[max + 1];
 
    for (int i = 0; i < max + 1; i++)
        temp[i] = 0;
 
    for (int x = 0; x < n; x++) {
        int num = arr[x];
        temp[num]++;
    }
 
    for (int x = 0; x < n; x++) {
        int num = arr[x];
        if (temp[num] > 1) {
            return x;
        }
    }
 
    return -1; // if no repeating element found
}
int main()
{
 
    int arr[] = { 10, 5, 3, 4, 3, 5, 6 };
 
    int n = sizeof(arr) / sizeof(arr[0]);
    int index = firstRepeated(
        arr, n); // index Of 1st repeating number
    if (index != -1) {
        cout << "1st Repeating Number is  " << arr[index];
    }
    else {
        cout << "No Repeating Number Found";
    }
 
    return 0;
}
 
// This code is contributed by gauravrajput1

Java

/*package whatever //do not write package name here */
 
import java.io.*;
class GFG {
    public static int firstRepeated(int[] arr, int n)
    {
        int max = 0;
        for (int x = 0; x < n; x++) {
            if (arr[x] > max) {
                max = arr[x];
            }
        }
        int temp[]
            = new int[max + 1]; // the idea is to use
                                // temporary array as hashmap
       // Arrays.fill(temp, 0);
 
        for (int x = 0; x < n; x++) {
            int num = arr[x];
            temp[num]++;
        }
 
        for (int x = 0; x < n; x++) {
            int num = arr[x];
            if (temp[num] > 1) {
                return x;
            }
        }
 
        return -1; // if no repeating element found
    }
    public static void main(String[] args)
    {
        int[] arr = { 10, 5, 3, 4, 3, 5, 6 };
 
        int n = arr.length;
        int index = firstRepeated(
            arr,
            arr.length); // index Of 1st repeating number
        if (index != -1) {
            System.out.println("1st Repeating Number is  "
                               + arr[index]);
        }
        else {
            System.out.println("No Repeating Number Found");
        }
    }
}

Python3

def firstRepeated(arr, n):
    max = 0;
    for x in range(n):
        if (arr[x] > max):
            max = arr[x];
     
    temp = [0 for i in range(max + 1)]; # the idea is to use
                                    # temporary array as hashmap
    # Arrays.fill(temp, 0);
 
    for x in range(n):
        num = arr[x];
        temp[num]+=1;
     
    for x in range(n):
        num = arr[x];
        if (temp[num] > 1):
            return x;
         
    return -1; # if no repeating element found
 
if __name__ == '__main__':
    arr = [ 10, 5, 3, 4, 3, 5, 6 ];
 
    n = len(arr);
    index = firstRepeated(arr, len(arr)); # index Of 1st repeating number
    if (index != -1):
        print("1st Repeating Number is ", arr[index]);
    else:
        print("No Repeating Number Found");
     
# This code is contributed by gauravrajput1

C#

/*package whatever //do not write package name here */
using System;
using System.Collections.Generic;
public class GFG {
  public static int firstRepeated(int[] arr, int n)
  {
    int max = 0;
    for (int x = 0; x < n; x++) {
      if (arr[x] > max) {
        max = arr[x];
      }
    }
    int []temp
      = new int[max + 1]; // the idea is to use
    // temporary array as hashmap
 
 
    for (int x = 0; x < n; x++) {
      int num = arr[x];
      temp[num]++;
    }
 
    for (int x = 0; x < n; x++) {
      int num = arr[x];
      if (temp[num] > 1) {
        return x;
      }
    }
 
    return -1; // if no repeating element found
  }
 
  // Driver code
  public static void Main(String[] args)
  {
    int[] arr = { 10, 5, 3, 4, 3, 5, 6 };
 
    int n = arr.Length;
    int index = firstRepeated(
      arr,
      arr.Length); // index Of 1st repeating number
    if (index != -1) {
      Console.WriteLine("1st Repeating Number is  "
                        + arr[index]);
    }
    else {
      Console.WriteLine("No Repeating Number Found");
    }
  }
}
 
// This code is contributed by gauravrajput1

Javascript

<script>
 
function firstRepeated(arr, n)
    {
        var max = 0;
        for (var x = 0; x < n; x++) {
            if (arr[x] > max) {
                max = arr[x];
            }
        }
        var temp
            = new Array(max + 1); // the idea is to use
                                // temporary array as hashmap
       // Arrays.fill(temp, 0);
 
        for (var x = 0; x < n; x++) {
            var num = arr[x];
            temp[num]++;
        }
 
        for (var x = 0; x < n; x++) {
            var num = arr[x];
            if (temp[num] > 1) {
                return x;
            }
        }
 
        return -1; // if no repeating element found
    }
    
        var arr = [ 10, 5, 3, 4, 3, 5, 6 ];
 
        var n = arr.length;
        var index = firstRepeated(
            arr,
            arr.length); // index Of 1st repeating number
        if (index = 1) {
           document.write("1st Repeating Number is  "
                               + arr[index]);
        }
        else {
           document.write("No Repeating Number Found");
      }
 
// This code is contributed by shivanisinghss2110
</script>

Publicación traducida automáticamente

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