Dans ce défi simple, vous obtenez un tableau d'entrée Ld'entiers non négatifs et un nombre de cases bsupérieur à 0 mais pas plus que la longueur de L. Votre code doit renvoyer un nouveau tableau Mdont la longueur est bet qui a regroupé le tableau L. Ceci est expliqué plus facilement avec des exemples.
L = [1,0,5,1]et b = 2retourne M = [1,6].
L = [0,3,7,2,5,1]et b = 3retourne M = [3,9,6].
Jusqu'à présent, si simple. Cependant, dans cette question bne doit pas nécessairement diviser len(L). Dans ce cas, le dernier bac aura juste moins de numéros à composer.
Chaque bac, sauf éventuellement le dernier, doit avoir le même nombre de chiffres contribuant à son total. Le dernier bac ne doit pas avoir plus de numéros qui y contribuent que les autres bacs. Le dernier bac doit avoir autant de numéros qui y contribuent que possible sous réserve des autres règles.
L = [0,3,7,2,5,1]et b = 4retourne M = [3,9,6,0]. M = [10,8,0,0]n'est pas une sortie acceptable car le troisième bac n'a pas le nombre de nombres qui y contribuent en tant que bacs 1et 2.
L = [0,3,7,2,5]et b = 2retourne M = [10,7]. M = [3, 14]n'est pas une sortie acceptable car le dernier bin aura des 3éléments qui y contribueront mais le premier n'en aura que 2.
L = [1,1,1,1,1,1,1]et b = 3retourne M = [3,3,1].
En règle générale, votre code doit s'exécuter en temps linéaire.
Vous pouvez utiliser n'importe quelle langue ou bibliothèque que vous aimez et pouvez supposer que l'entrée est fournie de la manière qui vous convient.
Il s'avère que certaines entrées ne peuvent pas être résolues. Par exemple [1,1,1,1,1]et b=4. Votre code peut sortir ce qu'il veut pour ces entrées.
your code must run in linear time- Je trouverais tout algorithme qui ne suit pas cela naturellement assez bizarre