Hola!
Breves instrucciones a continuación para que todo vaya fluido!
- Nos juntaremos en grupos de 2-3 personas
- Elegiremos conjuntamente y al "azar" un ejercicio de https://leetcode.com/ o https://www.hackerrank.com/
- Resolveremos el problema en iteraciones de 10 minutos.
- Al final cada iteración decideremos entre todos los grupos si damos finalizado el problema o continuamos iterando para refactorizar u optimizar.
- Finalizado el problema, copiaremos la solución en este documento en el espacio reservado para cada grupo.
- Revisaremos y comentaremos soluciones de cada grupo.
- Revisaremos soluciones de otros usuarios en Leetcode o Hackerank en Python, y en otros lenguajes.
- Si queda tiempo volvemos al Paso 2.
Además..
- No es necesario que todo el mundo traiga portatil (1 de cada 2 o 3 es suficiente) ni es necesario instalar nada.
- Se puede acompañar de café, te, galletas, desayuno inglés...(recuerda teclear sin chocolate en los dedos)
- No importa el nivel o la experiencia individual, lo importante es aprender todos de todos.
- La reunión es informal y el objetivo es aprender pasando un buen rato!
Anteriores ediciones:
Dani Alex
Código:
import itertools
class Solution:
def climbStairs(self, n: int) -> int:
unos = n
doses = 0
resultado = 0
while True:
elementos = "1" * unos + "2" * doses
resultado += len(set(itertools.permutations(elementos)))
if unos >=2:
unos -= 2
doses += 1
else:
return resultado
Alberto et Xurxo Código:
class Solution:
def recursive (self, left):
# print(left)
if left==[]:
self.contador+=1
return
for i in [1,2]:
if i<=len(left):
self.recursive(left[i:])
def climbStairs(self, n: int) -> int:
self.contador =0
self.recursive([1 for _ in range(n)])
return self.recursive
solucion:
1 -> 1
2 -> 2
3 -> 3
4 -> 5
5 -> 8
6 -> 13
7 -> 21
asi que
f(n) -> f(n-1) + f(n-2)
f(1) -> 1
f(2) -> 2
Javi Franco Jhon Mireia
Código:
N = 6
_min=int(math.floor(N / 2.0) + 1)
print("min", _min)
res=0
for x in range(0, _min, 1):
print(x, res)
res = res + (N - x)
print(res)
# n - 0 + (n - 1) + (n - 2)