Dados tres enteros x, y y z (pueden ser negativos). La tarea es encontrar la longitud de la array más pequeña que se puede hacer de manera que la diferencia absoluta entre los elementos adyacentes sea menor o igual a 1, el primer elemento de la array es x, tiene un entero y y el último elemento z.
Ejemplos:
Entrada: x = 5, y = 7, z = 11
Salida: 7
El más pequeño comienza con 5, tiene 7, termina
con 11 y tiene diferencia absoluta 1
es { 5, 6, 7, 8, 9, 10, 11 }.
Entrada: x = 3, y = 1, z = 2
Salida: 4
La array se convertiría en { 3, 2, 1, 2 }
La idea es considerar la recta numérica ya que la diferencia entre los elementos adyacentes es 1, por lo que para pasar de X a Y se deben cubrir todos los números entre x e y y terminar la array con el entero z, por lo que pasar del elemento y al elemento z .
Entonces, la longitud de la array más pequeña que se puede formar será la cantidad de puntos que se cubrirán de x a z, es decir
1 + abs(x - y) + abs(y - z) (1 is added to count point x).
C++
// C++ program to find the length of // smallest array begin with x, having y, // ends with z and having absolute difference // between adjacent elements <= 1. #include <bits/stdc++.h> using namespace std; // Return the size of smallest // array with given constraint. int minimumLength(int x, int y, int z) { return 1 + abs(x - y) + abs(y - z); } // Drivers code int main() { int x = 3, y = 1, z = 2; cout << minimumLength(x, y, z); return 0; }
Java
// Java program to find the length // of smallest array begin with x, // having y, ends with z and having // absolute difference between // adjacent elements <= 1. import java.io.*; class GFG { // Return the size of smallest // array with given constraint. static int minimumLength(int x, int y, int z) { return 1 + Math.abs(x - y) + Math.abs(y - z); } // Drivers code public static void main(String[] args) { int x = 3, y = 1, z = 2; System.out.println( minimumLength(x, y, z)); } } // This code is contributed by anuj_67.
Python 3
# Python 3 program to find # the length of smallest # array begin with x, having # y, ends with z and having # absolute difference between # adjacent elements <= 1. # Return the size of smallest # array with given constraint. def minimumLength(x, y, z): return (1 + abs(x - y) + abs(y - z)) # Drivers code x = 3 y = 1 z = 2 print(minimumLength(x, y, z)) # This code is contributed # by Smitha
C#
// C# program to find the length // of smallest array begin with x, // having y, ends with z and having // absolute difference between // adjacent elements <= 1. using System; class GFG { // Return the size of smallest // array with given constraint. static int minimumLength(int x, int y, int z) { return 1 + Math.Abs(x - y) + Math.Abs(y - z); } // Driver Code public static void Main() { int x = 3, y = 1, z = 2; Console.WriteLine(minimumLength(x, y, z)); } } // This code is contributed by anuj_67.
PHP
<?php // PHP program to find the length of // smallest array begin with x, having y, // ends with z and having absolute difference // between adjacent elements <= 1. // Return the size of smallest // array with given constraint. function minimumLength($x, $y,$z) { return 1 + abs($x - $y) + abs($y - $z); } // Driver Code $x = 3; $y = 1; $z = 2; echo minimumLength($x, $y, $z); // This code is contributed by anuj_67. ?>
Javascript
<script> // Javascript program to find the length of // smallest array begin with x, having y, // ends with z and having absolute difference // between adjacent elements <= 1. // Return the size of smallest // array with given constraint. function minimumLength(x, y, z) { return 1 + Math.abs(x - y) + Math.abs(y - z); } // Drivers code var x = 3, y = 1, z = 2; document.write( minimumLength(x, y, z)); // This code is contributed by noob2000. </script>
Producción
4
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)