Partie du test écrit Chengdu Elf Cloud

    J'ai récemment participé au test écrit et à l'entretien chez Chengdu Elf Cloud. Le poste était celui d'ingénieur C++. Plus tard, j'ai revu le processus moi-même. La partie du test écrit est résumée comme suit. J'espère qu'elle pourra fournir une référence aux étudiants qui souhaitent rejoindre l'entreprise et interviewer des ingénieurs C++. A l'avenir, je partagerai également l'expérience d'entretien et de test écrit de chaque entreprise dans cette rubrique. Si vous voulez le voir, vous pouvez suivre le blogueur !

Suivi

    Partie test préliminaire

format d'examen

   Il y a trois questions d'algorithme dans le test écrit. Le test écrit se présente sous la forme de questions de lecture, puis les idées d'algorithme sont données en chinois, et enfin les routines d'algorithme sont données. Les scores sont chacun de moitié, une question chacune pour des questions simples. , moyen et complexe.

Question 1 : retournement de phrase en anglais

   La première question est une question simple. Vous recevez une chaîne se terminant par « . » et vous êtes invité à afficher chaque phrase dans l'ordre inverse. Cependant, chaque chaîne ne contient pas nécessairement une seule phrase. Il peut y avoir plusieurs phrases. Entrez Le type est char *. Par exemple:

输入:"I am a programmer."
输出:"programmer a am I."

   Ce à quoi vous devez prêter attention dans cette question est le traitement des espaces. L'idée générale est d'utiliser la fonction premier entré, dernier sorti de la pile pour trouver « . » comme fin d'une phrase. Traitez d'abord cette phrase. , puis traitez la phrase suivante. Le résultat final est épissé. Can.

Question 2 : Recherche binaire

   La deuxième question est une question moyenne. Étant donné une séquence non décroissante, trouvez le nombre spécifié et l'indice du nombre doit être le plus grand dans la séquence d'origine. La complexité temporelle doit être inférieure à O(n)

   Évidemment, cette question a été triée et la complexité temporelle est stipulée comme étant O(n) ou moins. Naturellement, je pense à utiliser la recherche binaire. La complexité temporelle de la recherche binaire est O(logn), ce qui est inférieur à O(n ).

   Mais il convient de noter que lors de la mise à jour du bon indice, vous ne pouvez pas laisser right = mid - 1. Parce qu'il a été garanti que mid n'est pas égal à la cible, mais il n'y a aucune garantie que mid-1 n'est pas égal à la cible. left peut être mid+1, car ce que nous recherchons est l'indice maximum.

   Après l'avoir trouvé, nous devons commencer à partir de cet endroit et rechercher vers le haut jusqu'au dernier indice qui n'est pas égal à la cible. Soustrayez-en un pour obtenir la réponse. La limite droite du parcours est droite, car la droite est directement égale au milieu, et nous avons déjà Il est garanti que mid ne sera pas égal à la cible, nous pouvons donc certainement trouver une valeur qui n'est pas égale et ne tombera pas dans une boucle infinie.

Question 3 : cache LRU

La troisième question est une question facultative. Le cache LRU    sur leetcode utilise une liste chaînée bidirectionnelle.

Guess you like

Origin blog.csdn.net/qq_43419761/article/details/132782802