Voici la question. Je suis en fait abasourdi. Je ne comprends même pas la question. De quoi parlent-ils?
Quelle est même une plus grande gamme ? Que veulent-ils dire par plus grand ? Qu'est-ce qu'une gamme ? Ils disent qu'une plage est une collection de nombres qui se succèdent dans l'ensemble des nombres entiers réels. D'accord, donc 1, 2, 3, 4 , des trucs comme ça, non? Mais ensuite, ils disent que les numéros n'ont pas besoin d'être commandés ou même adjacents ... mais alors ils ne viennent pas les uns après les autres !! Ils contredisent leur propre déclaration précédente. Maintenant, je n'ai aucune idée de ce qu'est une gamme.
Leur exemple n'aide pas non plus. Pourquoi [0, 15, 5, 2, 4, 10, 7] est-il la plus grande plage de ce vecteur?
Que se passe-t-il?
3 Réponses :
Ce n'est pas très clair dans la question, mais je suis presque sûr que l'intervieweur veut dire qu'une "plage" est un ensemble de nombres consécutifs (n, n + 1).
La plage [0,7] est en fait [0,1,2,3,4,5,6,7] puisque toutes celles-ci apparaissent dans l'ensemble complet.
L'ordre réel n'a pas d'importance.
Dans l'exemple qui vous a été donné lors de l'interview, que vous indiquez également dans votre question, le tableau d'entrée est: [1, 11, 3, 0, 15, 5, 2, 4, 10, 7, 12, 6]
. La raison pour laquelle la "plus grande plage" est identifiée comme [0, 7]
est que tous les nombres entre 0
et 7
sont inclus dans ce tableau.
Il n'y a pas d'autre plage dans le tableau d'entrée qui a une plage plus longue que 0 à 7. Par exemple, il y a une plage [10, 12] dans le tableau d'entrée, mais ce tableau a une longueur de 3 qui est plus petite que la longueur de la plage [0, 7], qui est de 8.
Dans ce cas, la plage est comprise comme une liste continue d'entiers, la plus grande plage est la liste avec le plus grand nombre d'entiers.
Ça veut dire
Trouvez la plus grande plage continue de nombres
Pour par exemple. dans le tableau [0,1,2,5,6,7,8,9,10]
Il y a 2 listes continues [0,1,2]
et [5,6,7,8,9,10]
mais comme la plus grande plage est la seconde. donc la sortie doit être [5,10]
.
c'est-à-dire le plus grand et le plus petit de la plus grande gamme.
Non, car si vous ignorez 15, 5 et 10, vous obtenez [0, 2, 4, 7]. Ils ne «viennent pas les uns après les autres dans l'ensemble des nombres entiers réels», ce qu'ils écrivent littéralement. Sauf si vous pensez que [2] vient juste après [0] ?? Et [7] vient juste après [4] ???