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