Étant donné une liste de travaux, qui doivent être effectués dans l'ordre, chacun prenant un emplacement à faire, combien de temps cela prendra-t-il pour les exécuter tous si après avoir effectué un travail, le même travail ne peut pas être effectué pour les deux emplacements suivants (refroidissement des emplacements )? Cependant, un travail différent peut être affecté dans ces emplacements de refroidissement.
Par exemple,
[9,10,9,8] => output: 5
Parce que les emplois seront attribués en tant que [9 10 _ 9 8]
.
1. Tout d'abord, 9 a besoin de deux points de refroidissement _ _. Nous commençons donc par 9 _ _
.
2. Le travail suivant 10 est différent du travail précédent 9, nous pouvons donc allouer l'un des _ _. Ensuite, nous aurons 9 10 _
.
3. Troisièmement, 9 ne peut pas être alloué maintenant, car le premier travail 9 est le même travail et nécessite un temps de refroidissement. 9 10 _ 9
.
4. Enfin, 8 n'est pas le même que les deux autres travaux précédents, il peut donc être alloué juste après 9 et puisqu'il s'agit du dernier travail, il n'a pas besoin de temps de refroidissement. La liste finale est 9 10 _ 9 8
et la sortie attendue est 5, qui est le nombre de spots (ou nombre de slots)
Cas de test:
[1,2,3,4,5,6,7,8,9,10] => output : 10 ([1 2 3 4 5 6 7 8 9 10])
[1,1,1] => output: 7 ([1 _ _ 1 _ _ 1])
[3,4,4,3] => output: 6 ([3 4 _ _ 4 3])
[3,4,5,3] => output: 4 ([3 4 5 3])
[3,4,3,4] => output : 5 ([3 4 _ 3 4])
[3,3,4,4] => output : 8 ([3 _ _ 3 4 _ _ 4])
[3,3,4,3] => output : 7 ([3 _ _ 3 4 _ 3])
[3,2,1,3,-4] => output : 5 ([3 2 1 3 -4])
[] => output : 0 ([])
[-1,-1] => output : 4 ([-1 _ _ -1])
La valeur d'entrée peut être n'importe quel entier (négatif, 0, positif). La longueur de la liste des tâches est 0 <= longueur <= 1 000 000.
La sortie sera un entier, le nombre total d'emplacements, qui est indiqué dans le cas de test comme sortie. La liste entre parenthèses indique comment la sortie serait générée.
[]
?