La technologie pour améliorer est un processus graduel, donc je parle des questions leetcode algorithme de niveau le plus simple a commencé à écrire, puis à la difficulté intermédiaire, a finalement terminé toute la difficulté difficile.
Actuellement, je choisi le langage C, Python et Java comme langage de mise en uvre, parce que ces trois langues est tout à fait typique. En raison de l'espace et de l'énergie limitée pour réaliser d'autres langues amis qui sont intéressés, s'il vous plaît essayer vous-même.
principale difficulté à parler en même temps, je vais ajouter d'autres choses, je pourrais parler à la pile de protocole du système d'exploitation de grandes quantités de données distribués à partir du cadre, et de parler de gros volumes de données à l'intelligence artificielle, ... ....
Si vous avez des questions ou des commentaires après l'article lettre privée à moi .
Je continuerai à le partager, votre attention s'il vous plaît.
LeetCode 108. Le tableau ordonné dans un arbre binaire équilibré (Convertissez Sorted Array pour Binary Rechercher Arbre)
Description du problème:
Un tableau ordonné, conformément à l'ordre croissant, est converti en un arbre de recherche binaire très équilibrée.
Dans ce problème, un arbre binaire très équilibré est un arbre binaire fait référence au sous-arbre gauche et à droite de chaque nud est la différence de hauteur entre la valeur absolue de ne pas plus de 1.
exemple:
langage C:
Convertir ordonné tableau dans un arbre binaire équilibré, ce qui signifie que l'arbre binaire, le nombre de nuds sur la gauche et à droite de la différence entre le nombre de nuds ne peut pas être supérieur à 1, sinon possible Il est déséquilibré. ( Je dis qu'il est possible, le nombre de nuds dans beaucoup de temps, cette conclusion n'est pas établie, mais en tout cas remplir cette condition, il doit être équilibré )
Ensuite, la gamme la plus significative noeud intermédiaire « m » comme le noeud racine de l'arbre binaire devrait être « T », les éléments gauche et droit sont des noeuds d'un arbre binaire m « T » de la gauche et le sous-arbre droit du sous-arbres.
De même, pour l'élément « m » gauche ou à droite, ont encore besoin de sélectionner un élément de centrage de taille « T » dans la racine sous-sous-arbre gauche ou à droite de l'arbre, ....... Donc, cela continue, par la suite, il sera en mesure de former un nouvel arbre binaire équilibré.
Dans la mise en uvre de C, nous utilisons un tableau de pointeurs d'accès de contrôle très pratique.
Il convient de rappeler que lorsque vous modifiez le regard à travers le tableau de pointeurs, attention à la longueur de recherche doivent également être mis à jour.
Code est la suivante:
la mise en uvre de python de la langue:
python de mise en uvre de base et C est le même, sauf pour le python, les tranches plutôt que par la plage de recherche tableau de pointeurs de commande.
Code est la suivante:
Java implémentation du langage:
Java aucun pointeur C, ni python comme l'outil de coupe, donc nous définissons une fonction pour faire cette chose, la fonction d'inclure deux paramètres entiers comme le début et la fin matrice de recherche d'index.
D'autres parties sont fondamentalement les mêmes et atteindre le langage C.
Code est la suivante: