Guía completa sobre preparación de entrevistas de arrays

El sueño de todo programador es convertirse no solo en un buen, sino también en un gran programador. Todos queremos lograr nuestras metas y para lograr nuestras metas, debemos tener un gran plan con nosotros. En este contexto, hemos decidido proporcionar una guía completa para la preparación de entrevistas de Arrays, que lo ayudará a abordar los problemas que se plantean principalmente en la entrevista, como ¿Qué es un Array?, ¿Qué es un Array en lenguaje C?, ¿Cómo lo hace? inicializar una array en C, cómo ordenar una array, etc. También hemos cubierto temas como las preguntas de entrevista teóricas principales y las preguntas de codificación de entrevistas principales en esta guía completa para la preparación de entrevistas de array.

Complete guide for Arrays interview preparation

Guía completa para la preparación de entrevistas de Arrays

¿Qué es una array?

Una array es una colección de elementos del mismo tipo de variable almacenados que se almacenan en ubicaciones de memoria contiguas. Es una de las estructuras de datos más populares y simples y, a menudo, se usa para implementar otras estructuras de datos. Cada elemento de una array se indexa a partir de 0.

Array

Formación

Podemos acceder directamente a un elemento de array utilizando su valor de índice.

Terminologías básicas de array

  • Índice de array: en una array, los elementos se identifican por sus índices. El índice de array comienza desde 0.
  • Elemento de array: los elementos son elementos almacenados en una array y se puede acceder a ellos por su índice.
  • Longitud de la array: la longitud de una array está determinada por la cantidad de elementos que puede contener. 

Representación de array

La representación de una array se puede definir mediante su declaración. Una declaración significa asignar memoria para una array de un tamaño determinado. Las arrays se pueden declarar de varias maneras en diferentes idiomas. Para una mejor ilustración, a continuación se muestran algunas declaraciones de array específicas del idioma.

C++

int arr[5];        // This array will store integer type element
char arr[10];    // This array will store char type element
float arr[20];  // This array will store float type element

C

int arr[5];        // This array will store integer type element
char arr[10];    // This array will store char type element
float arr[20];  // This array will store float type element

Java

/* Static Arrays are arrays that are declared before runtime
and are assigned values while writing the code.
*/
  
// The syntax of declaring a static array is:
<data type><variable name>[]
    = {<data1>, <data2>,…..<dataN> };
  
// Example:
int arr[] = { 2, 5, 6, 9, 7, 4, 3 };

C#

int[] arr = new int[5]; // This array will store integer type element

Declaración de array

Sin embargo, la declaración anterior es una asignación de memoria estática o en tiempo de compilación , lo que significa que la memoria del elemento de la array se asigna cuando se compila un programa. Aquí solo se asignará un tamaño fijo (es decir, el tamaño que se menciona entre corchetes [] ) de memoria para el almacenamiento, pero no crea que no será la misma situación que conocemos el tamaño de la array cada vez, puede haber un caso en el que no sepamos el tamaño de la array. Si declaramos un tamaño más grande y almacenamos una menor cantidad de elementos, se desperdiciará memoria o si declaramos un tamaño menor, no obtendremos suficiente memoria para almacenar el resto de los elementos. En tales casos, no se prefiere la asignación de memoria estática.

¿Es posible crear una array dinámica

La respuesta es . Es posible asignar memoria dinámicamente. Entonces, la asignación de memoria dinámica es el proceso de asignar el espacio de memoria durante el tiempo de ejecución o el tiempo de ejecución.

A continuación se muestran los idiomas que admiten la asignación de memoria dinámica:

C++

int *array = new int[5];

Java

// The syntax of declaring a dynamic array is:
  
// <data type> <variable name> [ <Total Number of elements to be stored in array>];
// Example: 
int arr[10]; // Store integer elements
String arr[5]; // Store String type of elements

Python3

# list of integers
my_list = [1, 2, 3, 4]
  
# Empty list
my_list = []
  
# list of mixed data types
my_list = ["Hello", 1, 5.5]

C#

int[] numArray = new int[] {};

Javascript

// JavaScript has dynamic arrays: their size is not predetermined, nor the type of data.
  
 // Create array using literal
var x = ["a", "b", "c"];   
  
// Create array using constructor
var x = new Array();        
  
// Create array using constructor with items
var y = new Array("a", "b", "c");

PHP

$arr = array("a","b","c");

¿Por qué se necesitan estructuras de datos de array?

Supongamos que hay una clase de cinco estudiantes y si tenemos que mantener registros de sus calificaciones en el examen, podemos hacerlo declarando cinco variables individuales y haciendo un seguimiento de los registros, pero ¿y si el número de estudiantes se vuelve muy grande? difícil manipular y mantener los datos.

Lo que significa es que podemos usar variables normales (v1, v2, v3, ..) cuando tenemos una pequeña cantidad de objetos. Pero si queremos almacenar una gran cantidad de instancias, se vuelve difícil administrarlas con variables normales. La idea de una array es representar muchas instancias en una variable ..

Need for Array

Necesidad de array

Tipos de arreglos: 

Hay principalmente dos tipos de arreglos:

1D array

array 1D

  • Arreglos bidimensionales: 2-D Los arreglos multidimensionales se pueden considerar como un arreglo de arreglos o como una array que consta de filas y columnas.
     
2D array

array 2D

  • Array tridimensional: una array multidimensional tridimensional contiene tres dimensiones, por lo que puede considerarse una array de arrays bidimensionales.
     

array 3D

 Tipos de operaciones de array:

  • Recorrido: recorrer los elementos de una array.
  • Inserción: Insertar un nuevo elemento en una array.
  • Deletion: Eliminación de un elemento de la array.
  • Buscando: busca un elemento en la array.
  • Clasificación: mantener el orden de los elementos en la array.

Ventajas de usar arreglos :

  • Las arrays permiten el acceso aleatorio a los elementos. Esto hace que el acceso a los elementos por posición sea más rápido.
  • Las arrays tienen una mejor localidad de caché, lo que hace una gran diferencia en el rendimiento.
  • Las arrays representan múltiples elementos de datos del mismo tipo usando un solo nombre.
  • Las arrays almacenan múltiples datos de tipos similares con el mismo nombre.
  • Las estructuras de datos de array se utilizan para implementar otras estructuras de datos como listas vinculadas, pilas, colas, árboles, gráficos, etc.

Desventajas de la array :

  • Como las arrays tienen un tamaño fijo, una vez que se les asigna la memoria, no se puede aumentar ni disminuir, lo que hace imposible almacenar datos adicionales si es necesario. Una array de tamaño fijo se denomina array estática. 
  • Asignar menos memoria de la requerida a una array conduce a la pérdida de datos.
    Una array es de naturaleza homogénea, por lo que una sola array no puede almacenar valores de diferentes tipos de datos. 
  • Los arreglos almacenan datos en ubicaciones de memoria contiguas, lo que hace que la eliminación y la inserción sean muy difíciles de implementar. Este problema se soluciona implementando listas enlazadas, que permiten acceder a los elementos aleatoriamente.  

Aplicación de array :

  • Se utilizan en la implementación de otras estructuras de datos, como listas de arreglos, montones, tablas hash, vectores y arrays.
  • Los registros de la base de datos generalmente se implementan como arrays.
  • Se utiliza en tablas de consulta por computadora.
  • Se utiliza para diferentes algoritmos de clasificación, como la clasificación por inserción de burbujas, la clasificación por fusión y la clasificación rápida.

Principales preguntas teóricas de la entrevista

S.no

Pregunta

Responder

1 ¿Qué sucederá si no inicializa un Array? Vista
2 ¿Por qué la complejidad de obtener un valor de una array es O (1)? Vista
3 ¿Cuándo debería usar una array sobre una lista? Vista
4 ¿Qué es una array ordenada circularmente? Vista
5 ¿Comparando dos arrays usando hashmap? Vista
6 “¿Cuáles son las ventajas de una lista enlazada sobre una array? ¿En qué escenarios 
usamos LinkedList y cuándo Array?
Vista
7 ¿Cómo itero filas y columnas de una array multidimensional? Vista
8 ¿Qué se entiende por array dispersa? Vista
9 ¿Cuáles son los beneficios de Heap sobre las arrays ordenadas?  Vista
10 ¿Hay alguna diferencia entre int[] a e int a[]? Vista
11 ¿Podemos declarar el tamaño de la array como un número negativo? Vista
12 Sabemos que los arreglos son objetos, entonces, ¿por qué no podemos escribir strArray.length()? Vista
13 ¿Cuáles son las ventajas de las arrays ordenadas?   Vista
14 ¿Qué define la dimensionalidad de un Array?   Vista
15 ¿Cómo comprobar que la array contiene un valor o no? Vista
dieciséis ¿Cómo crear una array/lista dentro de otra array/lista? Vista
17 ¿Cómo obtener el número más grande y más pequeño en una array? Vista
18 ¿Cómo puedo devolver coordenadas/índices de una string en una array multidimensional? Vista
19 ¿Cómo elimino objetos de una array en Java? Vista
20 ¿Cómo asigna C elementos de datos en una array multidimensional? Vista
21 ¿Obtener elementos adyacentes en una array bidimensional? Vista
22 C++ ¿Cómo usar y pasar una array de caracteres tridimensional? Vista
23 Array anónima en Java Vista
24  ¿Cuál es el valor predeterminado de Array en Java? Vista
25 ¿Cómo copiar una array en otra array? Vista
26 ¿Cómo iterar una array en Java? Vista
27 ¿Cómo fusionar dos arrays ordenadas en una array ordenada? Vista
28 ¿Podemos hacer que la array sea volátil en Java? Vista
29 ¿Cuál es la lógica para invertir la array? Vista
30 ¿Cómo obtener el índice de un elemento de array? Vista
31 ¿Podemos extender una array después de la inicialización? Vista
32 ¿Cómo llenar elementos (inicializar a la vez) en una array? Vista
33 Diferencia entre array y string en Java Vista
34 Imprimir todos los subarreglos con suma 0 Vista
35 Índice de equilibrio de una array Vista
36 ¿Cómo comprobar que la array contiene un valor o no? Vista
37 ¿Cómo obtener los dos primeros números de una array? Vista
38 ¿Cómo implementar 3 pilas con una array?  Vista

Las 50 mejores preguntas de codificación de entrevistas

Problemas fáciles en arreglos

S.no

Pregunta

Artículo

Práctica

1 elemento pico Vista Resolver
2 Encuentre el elemento mínimo y máximo en una array Vista Resolver
3 Escriba un programa para invertir la array Vista Resolver
4 Escriba un programa para ordenar la array dada Vista Resolver
5 Encuentre el número K-ésimo más grande y el K-ésimo más pequeño en una array Vista Resolver
6 Encuentre la aparición de un número entero en la array Vista Resolver
7 Ordenar la array de 0s, 1s y 2s Vista Resolver
8 Subarreglo con Suma dada Vista Resolver
9 Mueva todos los elementos negativos a un lado de la array Vista Resolver
10 Encuentre la Unión y la Intersección de las dos arrays ordenadas Vista Resolver

Problemas medianos en arreglos

S.no

Pregunta

Artículo

Práctica

1 Escriba un programa para rotar cíclicamente una array en uno Vista Resolver
2 Encuentra el entero que falta Vista Resolver
3 Contar pares con suma dada Vista Resolver
4 Encuentra duplicados en una array Vista Resolver
5 Ordenar una array usando el algoritmo Quicksort Vista Resolver
6 Encuentra elementos comunes en tres arrays ordenadas Vista Resolver
7 Encuentre el primer elemento repetido en una array de enteros Vista Resolver
8 Encuentre el primer elemento que no se repite en una array dada de enteros Vista Resolver
9 Subarreglos con 1s y 0s iguales Vista Resolver
10 Reorganizar la array alternando elementos positivos y negativos Vista Resolver
11 Encuentra si hay algún subarreglo con una suma igual a cero Vista Resolver
12 Encuentre el subarreglo contiguo de suma más grande Vista Resolver
13 Encuentra el factorial de un gran número Vista Resolver
14 Buscar subarreglo de producto máximo Vista Resolver
15 Encuentra la subsecuencia consecutiva más larga Vista Resolver
dieciséis Encuentre el elemento mínimo en una array rotada y ordenada Vista Resolver
17 Suma máxima en la configuración Vista Resolver
18 Plataformas Mínimas Vista Resolver
19 Minimizar la diferencia máxima entre las alturas Vista Resolver
20 Número mínimo de saltos para llegar al final Vista Resolver
21 Problema de stock span Vista Resolver
23 Encuentre un triplete que sume un valor dado Vista Resolver
23 Número faltante positivo más pequeño Vista Resolver
24 Encuentre la fila con un número máximo de 1 Vista Resolver
25 Imprime la array en forma de Espiral Vista Resolver
26 Encuentra si una array es un subconjunto de otra array Vista Resolver
27 Implementar dos pilas en una array Vista Resolver
28 Elemento mayoritario Vista Resolver
29 array de onda Vista Resolver
30 atrapar el agua de lluvia Vista Resolver

Problemas Difíciles

S.no

Pregunta

Artículo

Práctica

1 Índice máximo Vista Resolver
2 Ruta de suma máxima en dos arrays Vista Resolver
3 Encuentra faltantes y repeticiones Vista Resolver
4 Problema de compra y venta de acciones Vista Resolver
5 Emparejar con la suma dada en una array ordenada Vista Resolver
6 Problema de distribución de chocolate Vista Resolver
7 Partición Igual Subconjunto Suma Vista Resolver
8 Entero positivo más pequeño que no se puede representar como una suma Vista Resolver
9 Problema de cambio de moneda Vista Resolver
10 Subsecuencia alterna más larga Vista Resolver

Preguntas frecuentes (FAQ) sobre Memoización

1. ¿Qué es una array en la estructura de datos con ejemplo?

Una array es una colección de elementos del mismo tipo de datos almacenados en ubicaciones de memoria contiguas. Ex. int arr[5] = {1,2,3,4,5};

2. ¿Por qué la array es una estructura de datos?

Los arreglos almacenan elementos del mismo tipo, se clasifican como estructuras de datos homogéneas. Pueden almacenar números, strings, caracteres, valores booleanos (verdadero y falso), objetos, etc.

3. ¿Qué estructura de datos es una array?

 Una array es una estructura de datos lineal que almacena elementos similares en ubicaciones de memoria contiguas.

4. ¿Cuáles son los tipos de arreglos?

Hay principalmente dos tipos de arreglos:

  • Array unidimensional
  • array multidimensional

5. ¿Cómo se almacenan los datos en una array?

Una array es una colección de elementos del mismo tipo de datos almacenados en ubicaciones de memoria contiguas o dice que los elementos se almacenan uno tras otro en la memoria. Una array usa un sistema de índice que comienza en 0 y va a (n-1) , donde n es su tamaño.

6. ¿Diferencia entre array y estructura?

La estructura puede contener variables de diferentes tipos, pero una array solo contiene variables del mismo tipo. 

7. ¿Cuáles son las limitaciones de una array?

Una array es una colección de elementos del mismo tipo de datos. Eso significa que, en una array de enteros, solo se pueden almacenar valores enteros, mientras que en una array flotante, solo los valores flotantes y la array de caracteres solo pueden tener caracteres. Por lo tanto, ninguna array puede tener valores de dos tipos de datos.

8. ¿Cuáles son las ventajas de una array?

Hay múltiples ventajas de la estructura de datos de array y algunas de ellas son:

  • Las arrays permiten el acceso aleatorio a los elementos. Esto hace que el acceso a los elementos por posición sea más rápido.
  • Las arrays almacenan múltiples datos de tipos similares con el mismo nombre.
  • Las estructuras de datos de array se utilizan para implementar otras estructuras de datos como listas vinculadas, pilas, colas, árboles, gráficos, etc.

9. ¿Cuál es el propósito de usar arreglos?

Una array se usa cuando se necesita usar varias variables del mismo tipo, y se puede definir como una secuencia de objetos del mismo tipo.  

10. ¿Qué es un arreglo multidimensional?

Una array multidimensional se puede denominar como una array de arrays que almacena datos homogéneos en forma tabular. Los datos en arrays multidimensionales se almacenan en orden de fila principal. 

Conclusión

Después de la discusión, llegamos a la conclusión de que las arrays son un método simple para acceder a elementos del mismo tipo agrupándolos y podemos encontrar los elementos de manera eficiente por sus índices y podemos realizar diferentes operaciones usándolos. Por lo tanto, son más eficientes en lo que respecta a la asignación de memoria y deben usarse en todos los lenguajes de programación modernos. Entonces, este se convierte en un tema favorito para la perspectiva de la entrevista y la mayoría de las empresas generalmente preguntaron sobre los problemas en la array. Por todas estas razones, debemos tener un buen conocimiento de la misma.

Artículos relacionados:

Publicación traducida automáticamente

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