Conjunto de ejercicios de algoritmo de entrevista de Alibaba 1

0, 1, n-1, estos n números se organizan en un círculo, comenzando desde el número 0, y eliminan el número m a la vez de este círculo. Encuentra el último número que queda en el círculo.

Por ejemplo, los cinco números 0, 1, 2, 3 y 4 forman un círculo. Si elimina el tercer número cada vez comenzando desde el número 0, entonces los primeros cuatro números eliminados son 2, 0, 4 y 1 en orden, por lo que el último número restante es 3.

Ejemplo 1:

Entrada: n = 5, m = 3.

Salida: 3

Ejemplo 2:

Entrada: n = 10, m = 17.

Salida: 2

Implemente una función que ingrese un número entero y genere la representación binaria del número 1. Por ejemplo, 9 se representa como 1001 en binario y los dos dígitos son 1. Por lo tanto, si ingresa 9, la función genera 2.

Ejemplo 1:

Entrada: 000000000000000000000000000001011.

Salida: 3

Explicación: En la cadena binaria de entrada 0000000000000000000000000101, * * hay tres números "1".

El número se serializa en una secuencia de caracteres en el formato 0123456789112131415... En esta secuencia, el quinto bit (contando desde el subíndice 0) es 5, el decimotercer bit es 1 y el decimonoveno bit es 4, y así sucesivamente.

Escribe una función para encontrar el número correspondiente a cualquier enésimo dígito.

Ejemplo 1:

Entrada: n = 3

Salida: 3

Ejemplo 2:

Entrada :n = 11

Salida: 0

Tenga en cuenta que debe ser de tipo largo.

Ingrese una matriz de números enteros no negativos, concatene todos los números de la matriz en un solo número e imprima el número más pequeño entre todos los números concatenables.

Ejemplo 1:

Entrada:

Salida: "102"

Ejemplo 2:

Entrada:

Salida: "3033459"

La maestra quiere repartir dulces a los niños. Hay n niños parados en línea recta y el maestro los calificará con anticipación según su desempeño.

Debes ayudar a la maestra a distribuir caramelos a estos niños según los siguientes requisitos:

A cada niño se le asigna al menos 1 caramelo.

Entre los niños vecinos, el niño con mayor puntuación deberá conseguir más caramelos.

Entonces, ¿cuántos dulces necesita preparar el maestro al menos?

Ejemplo 1:

Entrada:

Salida: 5

Instrucciones: Puedes distribuir 2, 1 a estos tres niños respectivamente y 2 caramelos.

Ejemplo 2:

Entrada:

Salida: 4

Explicación: 1, 2 y 1 se pueden distribuir entre estos tres niños respectivamente 1 caramelo.

El tercer niño solo recibió 1 caramelo, que ya cumplía las dos condiciones anteriores.

En una carretera de circunvalación existen n gasolineras, entre las cuales la I-ésima gasolinera dispone de gasolina.

Costo=

Salida: 3

La idea de la codicia es que mientras la suma sea mayor que 0, puedes evitarla.

La idea codiciosa de la posición inicial es que si la suma es menor que 0 desde el principio, entonces no debe comenzar desde la posición anterior, sino desde la siguiente posición actual, y suma = 0 se borra.

Dada una matriz de números enteros no negativos, inicialmente estás en la primera posición de la matriz.

Cada elemento del array representa la longitud máxima que se puede saltar en esa posición.

Tu objetivo es llegar a la última posición del array en el menor número de saltos.

Ejemplo:

Entrada:

Salida: 2

Explicación: El número mínimo de veces para saltar a la última posición es 2 .

Salte del subíndice 0 al subíndice 1, salte a 1 y luego salte 3 pasos para llegar a la última posición de la matriz.

Dada una matriz de números enteros no negativos, inicialmente estás en la primera posición de la matriz.

Cada elemento del array representa la longitud máxima que se puede saltar en esa posición.

Juzga si puedes llegar a la posición final.

Ejemplo 1:

Entrada:

Salida: verdadero

Explicación: Podemos saltar 1 primero y saltar de la posición 0 a la posición 1, luego salta desde la posición 1 a la última posición 3 pasos.

Los mensajes que contienen las letras A-Z se codifican de la siguiente manera:

a'-gt;1

b'-gt;2

...

z '- gt;26

Dada una cadena no vacía que contiene solo números, cuente el número total de métodos de decodificación.

Ejemplo 1:

Entrada: "12"

Salida: 2

Descripción: Puede decodificarse como "AB" (1 2 ) o "L" (12).

Asegúrate de prestar atención aquí cuando el primer número sea 0. s.charAt(0) == '0 '. Si el primer número es 0, debemos devolver 0 directamente.

Dada una matriz, su elemento I-ésimo es el precio de una acción determinada el día I.

Si solo puedes completar una transacción como máximo una vez (es decir, comprar y vender una acción una vez), diseña un algoritmo para calcular el beneficio máximo que puedes obtener.

Nota: No se pueden vender acciones antes de comprarlas.

Ejemplo 1:

Entrada:

Salida: 5

Explicación: Comprar al día siguiente (precio de la acción = 1), No Vender en cinco días (precio de la acción = 6). Beneficio máximo = 6-1 = 5.

Tenga en cuenta que la ganancia no puede ser 7-1 = 6, porque el precio de venta debe ser mayor que el precio de compra, al mismo tiempo, no se pueden vender las acciones primero y luego comprarlas;

Dadas tres cadenas s1, s2, s3 y s3, verifique si S3 consta de s1 y s2.

Ejemplo 1:

Entrada: s1 = "aabcc", S2 = "dbbca", S3 = "aadbbcbcac".

Salida: verdadero

Dada una cadena S y una regla de caracteres P, implemente una coincidencia de expresión regular que admita '.'

. Coincide con cualquier carácter individual.

* 'Coincide con cero o más elementos anteriores.

La llamada coincidencia significa cubrir toda la cadena s, no una parte de la cadena.

Descripción:

los s pueden estar vacíos y contener solo letras minúsculas de la a a la z.

p puede estar vacío y contiene sólo letras minúsculas y caracteres de la A a la Z. y*.

Ejemplo 1:

Entrada:

s = "aa "

p = "a "

Resultado: Falso

Explicación: "a" no puede coincidir con la cadena completa de "aa".

Dada una matriz de números enteros, encuentre la longitud de la ruta incremental más larga.

Para cada celda, puedes moverte hacia arriba, abajo, izquierda y derecha. No puede moverse en diagonal ni cruzar el límite (es decir, no está permitido rodearlo).

Ejemplo 1:

Entrada: nums =

,

,

Salida: (por supuesto correcto )

Dados algunos sobres etiquetados con ancho y alto, se muestran como un par entero (w, h). Cuando el ancho y alto del otro sobre son mayores que este sobre, el sobre se puede colocar dentro del otro sobre, como una muñeca rusa.

Por favor, calcula el número máximo de sobres que pueden formar un conjunto de "muñecas rusas" (es decir, un sobre se puede colocar dentro de otro sobre).

Descripción:

No se permite la rotación de sobres.

Ejemplo:

Entrada: sobre =,,,]

Salida: 3

Explicación: El número máximo de sobres es 3 , La combinación es: = gt = gt.

Programación dinámica estándar

Una rana quiere cruzar el río. Supongamos que el río se divide en partes iguales en x celdas, cada celda puede tener o no piedras. Las ranas pueden saltar sobre las rocas, pero no pueden saltar al agua.

Dada una lista de ubicaciones de piedras (en orden ascendente de números de celda), decida si la rana puede cruzar con éxito el río (es decir, si puede saltar a la última piedra en el último escalón). Al principio, la rana se paró por defecto en la primera piedra. Se puede suponer que el primer paso solo puede saltar una unidad (es decir, solo puede saltar de la celda 1 a la celda 2).

Si la rana saltó k unidades en el paso anterior, su siguiente distancia de salto solo puede ser k-1, k o k 1 unidades. También tenga en cuenta que la rana sólo puede saltar hacia adelante (hacia el punto final).

Tenga en cuenta:

El número de piedras es ≥ 2 y < 1100

El número de posición de cada piedra preciosa es un número entero no negativo y su número;

La posición de la primera piedra es siempre 0.

Ejemplo 1:

Salida: 3

La idea es ignorar el primero y obtener un resultado, e ignorar el último y obtener un resultado, siempre y cuando haya un resultado cada vez.

//Puedes usar rangeCopy para resolverlo en la función.

Dado un triángulo, encuentra la suma mínima del camino de arriba a abajo. Cada paso solo puede moverse al nodo adyacente de la siguiente fila.

Los nodos adyacentes aquí se refieren a dos nodos cuyo subíndice es igual o igual al subíndice 1 del nodo superior.

Por ejemplo, dado un triángulo:

,

,

]

De arriba a abajo. La suma de ruta mínima es 11 (es decir, 2 3 5 1 = 11).

Dada una cuadrícula de m×n que contiene números enteros no negativos, encuentre una ruta desde la esquina superior izquierda hasta la esquina inferior derecha que minimice la suma de los números en la ruta.

Nota: Solo puedes moverte un paso hacia abajo o hacia la derecha a la vez.

Ejemplo:

Entrada:

,

,

]

Salida :2

Un robot está ubicado en la esquina superior izquierda de una cuadrícula de mx n (el punto de partida está marcado como "inicio" en la imagen a continuación).

El robot sólo puede moverse un paso hacia abajo o hacia la derecha a la vez. El robot intenta llegar a la esquina inferior derecha de la cuadrícula (marcada como "Listo" en la imagen a continuación).

¿Cuántos caminos diferentes hay?

Supongamos que estás subiendo escaleras. Se necesitan n pasos para llegar al techo.

Puedes subir 1 o 2 escalones a la vez. ¿De cuántas maneras diferentes puedes subir a la cima del edificio?

Nota: La n dada es un número entero positivo.

Ejemplo 1:

Entrada: 2

Salida: 2

ection>