Niños con la mayor cantidad de dulces - LeetCode 1431
Descripción
Se tiene un arreglo llamado candies
que indica cuántos dulces tiene cada uno de n
niños, el número en la posición i
(candies[i]
) indica la cantidad de dulces que tiene el niño i
.
Un número entero extraCandies
, indica una cantidad de dulces extra que se tienen.
Completa la función kidsWithCandies
para que devuelva un arreglo de valores booleanos de tamaño n
, dónde result[i]
sea true
si el niño en la posición i
tiene la mayor cantidad de dulces después de darle la cantidad extra de ducles indicada por extraCandies
; El resultado será false
si aún después de dar extraCandies
al niño en la posición i
, no tiene la mayor cantidad de dulces.
Nota que puede haber varios niños con la mayor cantidad de dulces al mismo tiempo.
Ejemplo 1
Entrada: candies = [2,3,5,1,3], extraCandies = 3
Salida: [true,true,true,false,true]
Explicación: Si se dan extraCandies a:
- Niño 1, tendrá 2 + 3 = 5 dulces, lo cuál es la mayor cantidad de dulces.
- Niño 2, tendrá 3 + 3 = 6 dulces, lo cuál es la mayor cantidad de dulces.
- Niño 3, tendrá 5 + 3 = 8 dulces, lo cuál es la mayor cantidad de dulces.
- Niño 4, tendrá 1 + 3 = 4 dulces, lo cuál NO es la mayor cantidad de dulces.
- Niño 5, tendrá 3 + 3 = 6 dulces, lo cuál es la mayor cantidad de dulces.
Ejemplo 2:
Entrada: candies = [4,2,1,1,2], extraCandies = 1
Salida: [true,false,false,false,false]
Explicación: Sólo hay 1 dulce extra.
El niño 1 siempre tendrá la mayor cantidad de dulces, incluso si los dulces extra se dan a un niño diferente.
Ejemplo 3:
Entrada: candies = [12,1,12], extraCandies = 10
Salida: [true,false,true]
Restricciones:
- n == candies.length
- 2 <= n <= 100
- 1 <= candies[i] <= 100
- 1 <= extraCandies <= 50
Solución
Mostrar solución
class Solution:
def kidsWithCandies(self, candies: List[int], extraCandies: int) -> List[bool]:
# 1. encontrar el elemento mayor (referencia)
ref = max(candies)
results = []
# 2. recorrer la lista
for c in candies:
# 2.1 sumar los extraCandies a cada elemento
possible_max = c + extraCandies
# 2.2 comparar con la referencia
if possible_max >= ref:
# 2.3 asignar verdadero o falso si es mayor o menor que le referencia
results.append(True)
else:
results.append(False)
return results
Solución en Google Colab Probar Solución
-
Live Resolviendo el Ejercicio
Fuente del ejercicio: https://leetcode.com/problems/kids-with-the-greatest-number-of-candies