En este desafío simple, se le proporciona una matriz Lde entrada de enteros no negativos y una cantidad de bins bmayor que 0 pero no mayor que la longitud de L. Su código debe devolver una nueva matriz Mcuya longitud es by que ha agrupado la matriz L. Esto se explica más fácilmente con ejemplos.
L = [1,0,5,1]y b = 2vuelve M = [1,6].
L = [0,3,7,2,5,1]y b = 3vuelve M = [3,9,6].
Hasta ahora, muy simple. Sin embargo, en esta pregunta bno necesariamente tiene que dividirse len(L). En este caso, el último contenedor tendrá menos números para compensarlo.
Cada contenedor, excepto posiblemente el último, debe tener el mismo número de números que contribuyen a su total. El último contenedor no debe tener más números que contribuyan a él que los otros contenedores. El último contenedor debe tener tantos números contribuyendo como sea posible sujeto a las otras reglas.
L = [0,3,7,2,5,1]y b = 4vuelve M = [3,9,6,0]. M = [10,8,0,0]no es una salida aceptable ya que el tercer bin no tiene el número de nombres que contribuyen a él como bins 1y 2.
L = [0,3,7,2,5]y b = 2vuelve M = [10,7]. M = [3, 14]no es una salida aceptable ya que el último bin tendrá 3elementos que contribuyen a él, pero el primero solo tiene 2.
L = [1,1,1,1,1,1,1]y b = 3vuelve M = [3,3,1].
Como regla final, su código debe ejecutarse en tiempo lineal.
Puede usar cualquier idioma o biblioteca que desee y puede asumir que la entrada se proporciona de la forma que le resulte conveniente.
Resulta que hay algunas entradas que no se pueden resolver. Por ejemplo [1,1,1,1,1]y b=4. Su código puede generar lo que quiera para esas entradas.
your code must run in linear time- Encontraría cualquier algoritmo que no siga esto naturalmente bastante extraño