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 de mettre en œuvre 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 de l'algorithme qui peut résister au test de codage effectué au début, et c'est un chemin 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'une personne, alors 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 Day 91 "153. Find Minimum in Rotated Sorted Array" commençant à zéro
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!
L'affichage sur Qiita le jour 100 sera séparé pour le moment. J'ai pensé que ce serait bien si les articles avec des balises étaient tous mes articles, et j'ai pensé que cela pourrait gêner d'autres personnes qui fournissent des informations utiles, alors je vais le faire. J'ai décidé de. De nombreuses parties n'ont pu être atteintes, mais merci pour votre coopération jusqu'à présent.
Je continuerai à résoudre des problèmes et à écrire des articles sur le blog personnel ci-dessus, et si vous êtes intéressé, je vous serais reconnaissant de bien vouloir y jeter un œil de temps en temps. La plupart des comptes Twitter sont destinés aux notifications de mise à jour, donc si vous êtes intéressé par des articles qui résolvent Letcode, vous voudrez peut-être suivre cela également.
4. Median of Two Sorted Arrays Le niveau de difficulté est difficile.
Le problème est qu'il existe deux tableaux triés de tailles «m» et «n», «nums1» et «nums2». Trouvez la valeur médiane des deux tableaux de tri. Notez que la complexité globale du temps d'exécution doit être «O (log (m + n))», et on peut supposer que ni «nums1» ni «nums2» ne sont vides.
Example 1:
nums1 = [1, 3] nums2 = [2] The median is 2.0
Example 2:
nums1 = [1, 2] nums2 = [3, 4] The median is (2 + 3)/2 = 2.5
ʻO (log (m + n)) `signifie que vous pouvez utiliser la dichotomie. Cependant, comme le niveau de difficulté est Difficile, il y a deux listes à gérer. Cela augmentera la quantité de code que vous écrivez et plus vous écrivez, plus vous risquez de faire des erreurs. Et les deux ne sont pas nécessairement de la même taille, alors gardez cela à l'esprit.
class Solution:
def obtain_kth_num(self, nums1, nums2, k):
nums1_len, nums2_len = len(nums1), len(nums2)
nums1 = [-2**31] + nums1 + [2**31-1]
nums2 = [-2**31] + nums2 + [2**31-1]
left, right = max(0, k-nums2_len), min(nums1_len, k)
while left <= right:
i = (left+right) // 2
j = k - i
if nums1[i] > nums2[j+1]:
right = i - 1
elif nums2[j] > nums1[i+1]:
left = i + 1
else:
return max(nums1[i], nums2[j])
def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
nums_len = len(nums1) + len(nums2)
mid = self.obtain_kth_num(nums1, nums2, (nums_len+1)//2)
if nums_len % 2 == 0:
mid = (mid+self.obtain_kth_num(nums1, nums2, (nums_len+1)//2+1)) / 2.0
return mid
# Runtime: 116 ms, faster than 35.51% of Python3 online submissions for Median of Two Sorted Arrays.
# Memory Usage: 13.9 MB, less than 92.38% of Python3 online submissions for Median of Two Sorted Arrays.
Comme DFS, nous avons implémenté une fonction distincte, puis l'avons appelée dans le main. Je pense avoir déjà expliqué que «-2 ** 31» et «2 ** 31-1» utilisent cette méthode car il n'y a pas de type long dans Python3.
La fonction ʻobtain_kth_numprend les données données
nums1 et
num2` comme entrée et renvoie le kème plus petit nombre du tableau.
De plus, j'ai fait référence à cette vidéo pour l'idée de base de la dichotomie. Je veux être assez fort pour faire des vidéos comme celle-ci ...
Alors c'est tout pour cette fois. Je vous remercie pour votre travail acharné.
Recommended Posts