Dada una array de enteros, imprima los elementos faltantes que se encuentran en el rango 0-99 . Si falta más de uno, cotejelos, de lo contrario, imprima el número.
Tenga en cuenta que la array de entrada puede no estar ordenada y puede contener números fuera del rango [0-99] , pero solo este rango se debe considerar para imprimir los elementos que faltan.
Ejemplos:
C++
// C++ program for print missing elements #include <bits/stdc++.h> #define LIMIT 100 using namespace std; // A O(n) function to print missing elements in an array void printMissing(int arr[], int n) { // Initialize all number from 0 to 99 as NOT seen bool seen[LIMIT] = {false}; // Mark present elements in range [0-99] as seen for (int i=0; i<n; i++) if (arr[i] < LIMIT) seen[arr[i]] = true; // Print missing element int i = 0; while (i < LIMIT) { // If i is missing if (seen[i] == false) { // Find if there are more missing elements after i int j = i+1; while (j < LIMIT && seen[j] == false) j++; // Print missing single or range (i+1 == j)? cout << i : cout << "\n" << i << "-" << j-1; // Update u i = j; } else i++; } } // Driver program int main() { int arr[] = {88, 105, 3, 2, 200, 0, 10}; int n = sizeof(arr)/sizeof(arr[0]); printMissing(arr, n); return 0; } // This code is contributed by shivanisinghss2110
C
// C program for print missing elements #include<stdio.h> #define LIMIT 100 // A O(n) function to print missing elements in an array void printMissing(int arr[], int n) { // Initialize all number from 0 to 99 as NOT seen bool seen[LIMIT] = {false}; // Mark present elements in range [0-99] as seen for (int i=0; i<n; i++) if (arr[i] < LIMIT) seen[arr[i]] = true; // Print missing element int i = 0; while (i < LIMIT) { // If i is missing if (seen[i] == false) { // Find if there are more missing elements after i int j = i+1; while (j < LIMIT && seen[j] == false) j++; // Print missing single or range (i+1 == j)? printf("%dn", i): printf("%d-%dn", i, j-1); // Update u i = j; } else i++; } } // Driver program int main() { int arr[] = {88, 105, 3, 2, 200, 0, 10}; int n = sizeof(arr)/sizeof(arr[0]); printMissing(arr, n); return 0; }
Java
class PrintMissingElement { // A O(n) function to print missing elements in an array void printMissing(int arr[], int n) { int LIMIT = 100; boolean seen[] = new boolean[LIMIT]; // Initialize all number from 0 to 99 as NOT seen for (int i = 0; i < LIMIT; i++) seen[i] = false; // Mark present elements in range [0-99] as seen for (int i = 0; i < n; i++) { if (arr[i] < LIMIT) seen[arr[i]] = true; } // Print missing element int i = 0; while (i < LIMIT) { // If i is missing if (seen[i] == false) { // Find if there are more missing elements after i int j = i + 1; while (j < LIMIT && seen[j] == false) j++; // Print missing single or range int p = j-1; System.out.println(i+1==j ? i : i + "-" + p); // Update u i = j; } else i++; } } // Driver program to test above functions public static void main(String[] args) { PrintMissingElement missing = new PrintMissingElement(); int arr[] = {88, 105, 3, 2, 200, 0, 10}; int n = arr.length; missing.printMissing(arr, n); } }
Python3
# Python3 program for print missing elements # A O(n) function to print missing elements in an array def printMissing(arr, n) : LIMIT = 100 seen = [False]*LIMIT # Initialize all number from 0 to 99 as NOT seen for i in range(LIMIT) : seen[i] = False # Mark present elements in range [0-99] as seen for i in range(n) : if (arr[i] < LIMIT) : seen[arr[i]] = True # Print missing element i = 0 while (i < LIMIT) : # If i is missing if (seen[i] == False) : # Find if there are more missing elements after i j = i + 1 while (j < LIMIT and seen[j] == False) : j += 1 # Print missing single or range p = j - 1 if(i + 1 == j) : print(i) else : print(i, "-", p) # Update u i = j else : i += 1 # Driver code arr = [88, 105, 3, 2, 200, 0, 10] n = len(arr) printMissing(arr, n) # This code is contributed by divyesh072019.
C#
using System; class GFG { // A O(n) function to print missing elements in an array static void printMissing(int[] arr, int n) { int LIMIT = 100; bool[] seen = new bool[LIMIT]; int i; // Initialize all number from 0 to 99 as NOT seen for (i = 0; i < LIMIT; i++) seen[i] = false; // Mark present elements in range [0-99] as seen for (i = 0; i < n; i++) { if (arr[i] < LIMIT) seen[arr[i]] = true; } // Print missing element i = 0; while (i < LIMIT) { // If i is missing if (seen[i] == false) { // Find if there are more missing elements after i int j = i + 1; while (j < LIMIT && seen[j] == false) j++; // Print missing single or range int p = j - 1; if(i + 1 == j) { Console.WriteLine(i); } else { Console.WriteLine(i + "-" + p); } // Update u i = j; } else i++; } } // Driver code static void Main() { int[] arr = {88, 105, 3, 2, 200, 0, 10}; int n = arr.Length; printMissing(arr, n); } } // This code is contributed by divyeshrabadiya07.
PHP
<?php // PHP program for print // missing elements $LIMIT= 100; // A O(n) function to print // missing elements in an array function printMissing($arr, $n) { global $LIMIT; // Initialize all number from // 0 to 99 as NOT seen $seen = (false); // Mark present elements in. // range [0-99] as seen for ($i = 0; $i < $n; $i++) if ($arr[$i] < $LIMIT) $seen[$arr[$i]] = true; // Print missing element $i = 0; while ($i < $LIMIT) { // If i is missing if ($seen[$i] == false) { // Find if there are more // missing elements after i $j = $i + 1; while ($j < $LIMIT && $seen[$j] == false) $j++; // Print missing // single or range if (($i + 1 == $j) == true) echo $i, "\n"; else echo $i , "-", $j - 1, "\n"; // Update u $i = $j; } else $i++; } } // Driver Code $arr = array (88, 105, 3, 2, 200, 0, 10); $n = sizeof($arr); printMissing($arr, $n); // This code is contributed by aj_36 ?>
Javascript
<script> // Javascript program for print missing elements // A O(n) function to print missing // elements in an array function printMissing(arr, n) { let LIMIT = 100; let seen = new Array(LIMIT); let i; // Initialize all number from // 0 to 99 as NOT seen for(i = 0; i < LIMIT; i++) seen[i] = false; // Mark present elements in // range [0-99] as seen for(i = 0; i < n; i++) { if (arr[i] < LIMIT) seen[arr[i]] = true; } // Print missing element i = 0; while (i < LIMIT) { // If i is missing if (seen[i] == false) { // Find if there are more missing // elements after i let j = i + 1; while (j < LIMIT && seen[j] == false) j++; // Print missing single or range let p = j - 1; if (i + 1 == j) { document.write(i + "</br>"); } else { document.write(i + "-" + p + "</br>"); } // Update u i = j; } else i++; } } // Driver code let arr = [88, 105, 3, 2, 200, 0, 10]; let n = arr.length; printMissing(arr, n); // This code is contributed by suresh07 </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