Il semble que des tests de codage soient menés à l'étranger lors d'entretiens d'ingénieurs, et dans de nombreux cas, l'essentiel est d'implémenter des fonctions et des classes spécifiques en fonction du thème.
Apparemment, de nombreux ingénieurs prennent des mesures sur le site appelé LetCode.
C'est un site qui forme la puissance algorithmique qui peut résister au test de codage effectué au début de l'histoire, et c'est une voie inévitable pour ceux qui veulent faire carrière dans une entreprise de technologie à l'étranger.
Je l'ai écrit en grand, mais je n'ai pas l'intention d'avoir une telle interview pour le moment.
Cependant, en tant qu'ingénieur informatique, il serait préférable d'avoir le même niveau de puissance d'algorithme qu'un être humain, donc j'aimerais résoudre le problème de manière irrégulière et écrire la méthode que je pensais à l'époque sous forme de mémo.
Je le résolve avec Python3.
Table de codes Leet commençant à zéro
Dernière fois Leet Code Jour 90 à partir de zéro "101 1. Capacité à expédier les colis dans les jours J"
Twitter Je le fais.
** Blog technique Commencé! !! ** ** Je pense que la technologie écrira sur LetCode, Django, Nuxt, etc. ** C'est plus rapide à mettre à jour **, merci pour votre coopération!
153. Find Minimum in Rotated Sorted Array Le niveau de difficulté est moyen. Ceci est un extrait de Leet Code 60 Questions que je veux résoudre pour la préparation des entrevues de codage.
Le problème est, disons que vous faites pivoter un tableau trié par ordre croissant avec un pivot que vous ne connaissez pas à l'avance. (Il peut être utile de penser à un exemple où [0,1,2,4,5,6,7] devient [4,5,6,7,0,1,2]. )
Trouvez le plus petit élément de la liste.
On peut considérer qu'il n'y a pas d'éléments en double dans le tableau.
Example 1:
Input: [3,4,5,1,2] Output: 1
Example 2:
Input: [4,5,6,7,0,1,2] Output: 0
class Solution:
def findMin(self, nums: List[int]) -> int:
low,high = 0,len(nums)-1
while low < high:
mid = (high+low)//2
if nums[mid] > nums[high]:
low = mid + 1
else:
high = mid
return nums[low]
# Runtime: 36 ms, faster than 92.74% of Python3 online submissions for Find Minimum in Rotated Sorted Array.
# Memory Usage: 13.9 MB, less than 83.16% of Python3 online submissions for Find Minimum in Rotated Sorted Array.
C'est un algorithme qui renvoie le plus petit élément à chaque fois que vous permutez les points de début et de fin d'une liste triée tout en conservant l'ordre. Je pense que la dichotomie (O (logn)) est un algorithme approprié, donc si je l'écris tel quel, la vitesse sera bonne. Récemment, j'ai réétudié la quantité de calcul d'un algorithme typique, je voudrais donc pouvoir sélectionner un algorithme approprié autant que possible. Ce ne sont que quelques-uns, alors je sens que je dois travailler dur.
Quoi qu'il en soit, il est bon d'expliquer ce problème de dichotomie ... La recherche linéaire manque de temps, alors n'est-il pas très bon de regarder ces endroits? Je pensais que c'était un choix de problèmes.
Alors c'est tout pour cette fois. Je vous remercie pour votre travail acharné.
Recommended Posts