Dada una array desordenada de números distintos , escriba una función que devuelva verdadero si la array consta de números consecutivos.
Ejemplos:
Input : arr[] = {5, 4, 2, 1, 3} Output : Yes Input : arr[] = {2, 1, 0, -3, -1, -2} Output : Yes
Hemos discutido tres enfoques diferentes en la publicación a continuación .
Verifique si los elementos de la array son consecutivos
en la publicación anterior. se discuten tres métodos para este problema con la mejor complejidad de tiempo de O(n) y en O(1) espacio extra pero esa solución no maneja el caso de números negativos. Entonces, en esta publicación, se discutirá un método con una complejidad temporal de O(n) y usando el espacio O(1) que también manejará el caso de negativo. Una suposición importante aquí es que los elementos son distintos.
- Encuentre la suma de la array.
- Si los elementos de la array dados son consecutivos, eso significa que están en AP. Por lo tanto, encuentre el elemento mínimo, es decir, el primer término de AP y luego calcule ap_sum = n/2 * [2a +(n-1)*d] donde d = 1. Entonces, ap_sum = n/2 * [2a +(n-1) ]
- Compara ambas sumas. Escriba Sí si es igual, de lo contrario No.
C++
// C++ program for above implementation #include <bits/stdc++.h> using namespace std; // Function to check if elements are consecutive bool areConsecutives(int arr[], int n) { // Find minimum element in array int first_term = *(min_element(arr, arr + n)); // Calculate AP sum int ap_sum = (n * (2 * first_term + (n - 1) * 1)) / 2; // Calculate given array sum int arr_sum = 0; for (int i = 0; i < n; i++) arr_sum += arr[i]; // Compare both sums and return return ap_sum == arr_sum; } // Drivers code int main() { int arr[] = { 2, 1, 0, -3, -1, -2 }; int n = sizeof(arr) / sizeof(arr[0]); areConsecutives(arr, n) ? cout << "Yes" : cout << "No"; return 0; }
Java
// Java program to check if array elements // are consecutive import java.io.*; class GFG { // Function to check if elements are // consecutive static Boolean areConsecutives(int arr[], int n) { // Find minimum element in array int first_term = Integer.MAX_VALUE; for (int j = 0; j < n; j++) { if(arr[j] < first_term) first_term = arr[j]; } // Calculate AP sum int ap_sum = (n * (2 * first_term + (n - 1) * 1)) / 2; // Calculate given array sum int arr_sum = 0; for (int i = 0; i < n; i++) arr_sum += arr[i]; // Compare both sums and return return ap_sum == arr_sum; } // Driver code public static void main(String[] args) { int arr[] = { 2, 1, 0, -3, -1, -2 }; int n = arr.length; Boolean result = areConsecutives(arr, n); if(result == true) System.out.println("Yes"); else System.out.println("No"); } } // This code is contributed by Prerna Saini
Python 3
# Python 3 program for above # implementation import sys # Function to check if elements # are consecutive def areConsecutives(arr, n): # Find minimum element in array first_term = sys.maxsize for i in range(n): if arr[i] < first_term: first_term = arr[i] # Calculate AP sum ap_sum = ((n * (2 * first_term + (n - 1) * 1)) // 2) # Calculate given array sum arr_sum = 0 for i in range( n): arr_sum += arr[i] # Compare both sums and return return ap_sum == arr_sum # Driver Code arr = [ 2, 1, 0, -3, -1, -2 ] n = len(arr) if areConsecutives(arr, n): print( "Yes") else: print( "No") # This code is contributed # by ChitraNayal
C#
// C# program to check if array // elements are consecutive using System; class GFG { // Function to check if elements // are consecutive static bool areConsecutives(int []arr, int n) { // Find minimum element in array int first_term = int.MaxValue; for (int j = 0; j < n; j++) { if(arr[j] < first_term) first_term = arr[j]; } // Calculate AP sum int ap_sum = (n * (2 * first_term + (n - 1) * 1)) / 2; // Calculate given array sum int arr_sum = 0; for (int i = 0; i < n; i++) arr_sum += arr[i]; // Compare both sums and return return ap_sum == arr_sum; } // Driver code public static void Main() { int []arr = {2, 1, 0, -3, -1, -2}; int n = arr.Length; bool result = areConsecutives(arr, n); if(result == true) Console.WriteLine("Yes"); else Console.WriteLine("No"); } } // This code is contributed by vt_m.
PHP
<?php // PHP program to check if // array elements are consecutive // Function to check if elements // are consecutive function areConsecutives($arr, $n) { // Find minimum element in array $first_term = 9999999; for ($j = 0; $j < $n; $j++) { if($arr[$j] < $first_term) $first_term = $arr[$j]; } // Calculate AP sum $ap_sum = intval(($n * (2 * $first_term + ($n - 1) * 1)) / 2); // Calculate given array sum $arr_sum = 0; for ($i = 0; $i < $n; $i++) $arr_sum += $arr[$i]; // Compare both sums and return return $ap_sum == $arr_sum; } // Driver code $arr = array(2, 1, 0, -3, -1, -2); $n = count($arr); $result = areConsecutives($arr, $n); if($result == true) echo "Yes"; else echo "No"; // This code is contributed by Sam007 ?>
Javascript
<script> // Javascript program to check if array elements // are consecutive // Function to check if elements are // consecutive function areConsecutives(arr,n) { // Find minimum element in array let first_term = Number.MAX_VALUE; for (let j = 0; j < n; j++) { if(arr[j] < first_term) first_term = arr[j]; } // Calculate AP sum let ap_sum = (n * (2 * first_term + (n - 1) * 1)) / 2; // Calculate given array sum let arr_sum = 0; for (let i = 0; i < n; i++) arr_sum += arr[i]; // Compare both sums and return return ap_sum == arr_sum; } // Driver code let arr=[2, 1, 0, -3, -1, -2 ]; let n = arr.length; let result = areConsecutives(arr, n); if(result == true) document.write("Yes"); else document.write("No"); //This code is contributed by avanitrachhadiya2155 </script>
Producción :
Yes
Complejidad de tiempo: O(n)
Espacio auxiliar: O(1)
Este artículo es una contribución de Sahil Chhabra . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a contribuir@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
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