Passer aux informations sur le produit
Entretien sur les algorithmes Java avec Kotlin
Entretien sur les algorithmes Java avec Kotlin
Description
Introduction au livre
- Un guide d'étude complet sur les algorithmes et les structures de données pour les demandeurs d'emploi et ceux qui changent de carrière !
- Analyse détaillée et explications des solutions de 102 questions précédentes de Leetcode/Programmers.


« Python Algorithm Interview », le guide ultime pour les développeurs préparant les tests de programmation et les entretiens d'embauche en algorithmique, a été mis à jour et remanié avec du code Java et Kotlin ! Ce livre unique vous permettra d'acquérir les bases d'un code pratique, immédiatement applicable en entreprise, et vous aidera également à préparer une recherche d'emploi ou une reconversion professionnelle.
Renforçons une fois de plus notre compréhension des algorithmes et des structures de données grâce à plus de 200 illustrations détaillées.
  • Vous pouvez consulter un aperçu du contenu du livre.
    Aperçu

indice
[Partie 1] Se préparer à un entretien de codage

Chapitre 1 : Entretiens et tests de codage
Les entretiens techniques : la porte d'entrée vers le recrutement de talents en entreprise
Entretiens de codage et critères d'évaluation des entreprises nationales et étrangères
État actuel de l'utilisation des plateformes de tests de codage par les entreprises nationales
Préparation à un test de codage en ligne
Cahier d'exercices et outils d'écriture
Quel langage de programmation est avantageux ?
__Préparez votre propre extrait de code
__doit être résolu pour que tous les tests réussissent
__Si un délai d'attente est dépassé
N'oubliez pas de gérer les exceptions
__Comment gérer une solution qui est abordée de manière incorrecte
Ai-je besoin d'un outil de codage ?
__S'il y a des intervieweurs négatifs dans l'IDE
__Vérifiez votre code avec l'outil REPL
Caractéristiques et utilisations des plateformes de test de codage en ligne
__Leetcode
__programmeurs

[Partie 2] Java et Kotlin

Chapitre 2 Java, le langage le plus célèbre au monde
Histoire de Java
Caractéristiques clés de Java
langage de programmation orienté objet
Langage de programmation fonctionnelle
Outils Java
JShell prêt à l'emploi
__Comment créer et exécuter Java
L'émergence des langages basés sur la JVM

Chapitre 3 : Kotlin, un langage officiel reconnu par Google
Caractéristiques principales de Kotlin
__pratique
__Interopérabilité
__Sécurité
__Élégance
Grammaire de base de Kotlin
__Nettoyer la boucle for
__Neat when instruction conditionnelle
__Déclaration de fonction pratique
Langage de programmation fonctionnelle
Contrôleur de visibilité
fonction __extension
Comment compiler et exécuter Kotlin
Kotlin est-il vraiment lent ?

Chapitre 4 Types de données
Quels types de données Java propose-t-il ?
__type de données primitif
__Type de données de référence
Comparaison de vitesse des types de données primitifs et de référence
L'émergence du framework Java Collections
__La liste que vous utiliserez le plus souvent
__La carte la plus utile que vous utiliserez jamais
Problèmes de performance liés aux types de données initiaux
Un type de données capable de stocker des nombres de taille infinie.
Quels types de données Kotlin propose-t-il ?
Les types de données Kotlin sont-ils vraiment si rapides ?
Comment Kotlin implémente un framework de collections
Les fonctions d'extension de Kotlin qui étendent les fonctionnalités d'une classe
__Interface Collection implémentée séparément par Kotlin
Vitesse d'exécution du framework Java Collections

Chapitre 5 Grand O
Grand O
Comparaison de __n2 et 2n
Une méthode pratique pour calculer le grand O
__Supérieur et pire
__Analyse du remboursement par versements échelonnés
__Parallélisation
__Caractéristiques de la complexité
Notation Big O du framework Java Collections
__Complexité temporelle de la liste
Complexité temporelle de la carte
Complexité temporelle du deck

Chapitre 6 Traitement des chaînes de caractères
[Problème 01] Palindrome valide
[Problème 02] Inverser une chaîne de caractères
[Problème 03] Réorganisation des fichiers journaux
[Question 04] Les mots les plus courants
[Problème 05] Anagramme de groupe
[Problème 06] Plus longue sous-chaîne palindromique

[Partie 3] Structures de données linéaires

Chapitre 7 Agencement
réseau dynamique
[Problème 07] Somme de deux nombres
[Problème 08] Récupération des eaux pluviales
[Problème 09] Somme de trois nombres
[Problème 10] Partition de tableau I
[Problème 11] Produit de tableaux s'excluant lui-même
[Question 12] Le meilleur moment pour acheter et vendre des actions

Chapitre 8 Listes chaînées
[Problème 13] Liste chaînée palindromique
[Problème 14] Fusion de deux listes triées
[Problème 15] Liste chaînée inversée
[Problème 16] Addition de deux nombres
[Problème 17] Échange de nœuds de paires
[Problème 18] Liste chaînée paire-impaire
[Problème 19] Liste chaînée inversée II

Chapitre 9 Piles et files d'attente
empiler
signal
Utilisation en Java
Déclaration de file d'attente Java
Déclaration de pile __Java
__Si la sécurité du fil est requise
[Problème 20] Parenthèses valides
[Problème 21] Suppression des caractères en double
[Problème 22] Température quotidienne
[Problème 23] Implémentation d'une pile à l'aide d'une file d'attente
[Problème 24] Implémentation d'une file d'attente à l'aide d'une pile
[Problème 25] Conception de files d'attente circulaires

Jeu de 10 cartes, file d'attente prioritaire
pont
[Problème 26] Conception d'une terrasse circulaire
file d'attente prioritaire
[Problème 27] Fusion de k listes triées
[Problème 28] Les k points les plus proches de l'origine
[Question 29] Plus épicé

Chapitre 11 Tables de hachage
Hacher
__problème d'anniversaire
Principe des tiroirs
facteur de charge
Fonction __hash
accident
__Chaînage individuel
__Adressage ouvert
Méthodes d'implémentation de tables de hachage spécifiques au langage
[Problème 30] Conception de tables de hachage
[Problème 31] Pierres précieuses et gemmes
[Problème 32] Sous-chaîne la plus longue sans caractères dupliqués
[Problème 33] Les k éléments les plus fréquents
[Question 34] Athlètes qui n'ont pas terminé

[Partie 4] Structures de données non linéaires

Chapitre 12 Graphique
Chemin d'Euler
Chemin Hamilton
Parcours de graphe
__DFS (recherche en profondeur d'abord)
__BFS (Recherche en largeur)
Retour en arrière
Problème de satisfaction de contraintes
[Problème 35] Nombre d'îles
[Problème 36] Combinaison de caractères pour les numéros de téléphone
[Problème 37] Permutations
[Problème 38] Combinaison
[Problème 39] Somme des combinaisons
[Problème 40] Sous-ensembles
[Problème 41] Restructuration du calendrier
[Problème 42] Itinéraire
[Question 43] Programme du cours

Chapitre 13 : Le problème du chemin le plus court
[Problème 44] Temps de latence du réseau
[Question 45] Quel est le vol le moins cher à l'intérieur du point de transit K ?
[Question 46] Distance la plus courte sur la carte du jeu

Chapitre 14 Arbre
Chaque nom de l'arbre
Différences entre graphes et arbres
arbre binaire
[Problème 47] Profondeur maximale d'un arbre binaire
[Problème 48] Diamètre d'un arbre binaire
[Problème 49] Chemin le plus long avec des valeurs identiques
[Problème 50] Inversion d'arbre binaire
[Problème 51] Fusion de deux arbres binaires
[Problème 52] Sérialisation et désérialisation d'arbres binaires
[Problème 53] Arbre binaire équilibré
[Problème 54] Arbre de hauteur minimale
Arbre binaire de recherche (BST)
Arbre de recherche binaire auto-équilibré
[Problème 55] Conversion d'un tableau trié en arbre binaire de recherche
[Problème 56] Conversion d'un arbre binaire de recherche (ABR) en un arbre de sommes plus grand
[Problème 57] Plage d'accord d'un arbre binaire de recherche (BST)
[Problème 58] Valeur minimale entre les nœuds d'un arbre binaire de recherche (BST)
Parcours d'arbre
__traversée de préposition
__Lieutenant Tour
__parcours post-ordre
[Problème 59] Construction d'un arbre binaire à l'aide des parcours préfixe et infixe

Chapitre 15 Tas
Opérations sur le tas
__insertion
__extraction
[Problème 60] Le k-ième plus grand élément d'un tableau
[Problème 61] File d'attente à double priorité

Chapitre 16 Essayez
[Problème 62] Implémentation de l'arbre de trie
[Problème 63] Paire de palindromes

[Partie 5] Algorithmes

Chapitre 17 Tri
Tri à bulles
Tri par insertion
tri fusion
Tri rapide
Tris stables et instables
[Problème 64] Tri de listes
[Problème 65] Fusion de sections
[Problème 66] Liste de tri par insertion
[Problème 67] Plus grand nombre
[Problème 68] Anagrammes valides
[Problème 69] Tri par couleur

Chapitre 18 : Recherche binaire
[Problème 70] Recherche binaire
[Problème 71] Recherche dans un tableau trié par rotation
[Problème 72] Intersection de deux tableaux
[Problème 73] Somme de deux nombres II
[Problème 74] Recherche matricielle 2D II
[Question 75] Inspection d'immigration

Chapitre 19 Manipulation des bits
opérateurs booléens
opérateurs bit à bit
Quiz sur la manipulation du rythme
Opérations binaires limitées à __Chiffres
Complément à 2
représentation numérique en complément à 2
__opérateur binaire NON
[Problème 76] Nombre unique
[Problème 77] Distance de Hamming
[Problème 78] Somme de deux entiers
[Problème 79] Vérification UTF-8
[Problème 80] Nombre de bits de 1

Chapitre 20 Fenêtre coulissante
[Problème 81] Fenêtre coulissante maximale
[Problème 82] Fenêtre minimale contenant une sous-chaîne
[Problème 83] Remplacer le caractère répétitif le plus long

Chapitre 21 : Algorithmes gloutons
Problème de sac à dos
Problème de change de monnaie
somme la plus élevée
[Problème 84] Le meilleur moment pour acheter et vendre des actions II
[Problème 85] Réorganisation de la file d'attente par clé
[Problème 86] Planificateur de tâches
[Problème 87] Station-service
[Problème 88] Octroi de cookies

Chapitre 22 Diviser pour mieux régner
[Problème 89] Élément majoritaire
[Problème 90] Différentes façons d'insérer des parenthèses

Chapitre 23 : Programmation dynamique
Sous-structure optimale
Sous-problèmes qui se chevauchent
Méthodologie de programmation dynamique
__de bas en haut
__De haut en bas
[Problème 91] Nombres de Fibonacci
Problème de sac à dos 0-1
[Problème 92] Sous-tableau maximal
[Problème 93] Monter les escaliers
[Problème 94] Voleur de maison
[Problème 95] Vol

Annexe : Guide du score parfait pour le recrutement chez Kakao en 2022
[Problème 96] Réception des résultats du rapport
[Problème 97] Trouver le nombre de nombres premiers en base k
[Problème 98] Calcul des frais de stationnement
[Question 99] Compétition de tir à l'arc
[Question 100] Moutons et loups
[Problème 101] Bâtiment non détruit
[Problème 102] Point d'appui qui disparaît

Image détaillée
Image détaillée 1Image détaillée 2

Avis de l'éditeur
Structure de ce livre

[Partie 1] « Se préparer à un entretien de codage » : Le chapitre 1 « Entretien de codage et test de codage » présente chacun d'eux, explique comment réussir le test, comment gérer les délais d'attente et les exceptions en plus de la résolution de problèmes, et propose divers conseils pour bien résoudre les problèmes et améliorer votre score, ainsi que la manière de résoudre des problèmes sur Leetcode et Programmers.

[Partie 2] 'Java et Kotlin' : Dans le chapitre 2, 'Java', nous choisissons Java comme langage pour résoudre les tests de codage et examinons les fonctionnalités détaillées et les principes de fonctionnement de Java, le langage le plus célèbre au monde.
Le chapitre 3, « Kotlin », examine les caractéristiques et les principes de fonctionnement de Kotlin, qui deviendra très probablement le prochain langage majeur après Java.
Le chapitre 4, « Types de données », examine divers types de données fournis par Java, y compris le framework Java Collection, et examine en détail les principes et les méthodes d'implémentation de l'utilisation des types de données Java dans Kotlin.
Le chapitre 5, « Big O », examine la définition et les caractéristiques de Big O, et analyse également de plus près le Big O du framework Java Collections.
Le chapitre 6, « Manipulation des chaînes de caractères », examine des sujets liés aux chaînes de caractères.
À partir de ce chapitre, nous allons commencer à résoudre sérieusement divers problèmes.

[Partie 3] « Structures de données linéaires » : Du chapitre 7 « Tableaux » au chapitre 8 « Listes chaînées », au chapitre 9 « Piles, files d'attente », au chapitre 10 « Decks, files d'attente prioritaires » et au chapitre 11 « Tables de hachage », nous examinerons divers sujets liés aux structures de données linéaires et résoudrons des problèmes de test de codage.

[Partie 4] « Structures de données non linéaires » : Du chapitre 12 « Graphes » au chapitre 13 « Problèmes de plus court chemin », au chapitre 14 « Arbres », au chapitre 15 « Tas » et au chapitre 16 « Tries », nous examinerons des sujets liés aux structures de données non linéaires et résoudrons des problèmes de test de codage.

[Partie 5] 'Algorithme' : Dans le chapitre 17, 'Tri', nous examinerons un par un différents algorithmes de tri, appelés la fleur des algorithmes.
Le chapitre 18, « Recherche binaire », le chapitre 19, « Manipulation de bits », et le chapitre 20, « Fenêtre glissante », examinent des algorithmes connexes.
Plus précisément, les chapitres 21 (« Algorithme glouton »), 22 (« Diviser pour régner ») et 23 (« Programmation dynamique ») sont indépendants, mais traitent de sujets connexes. Le chapitre 23 résume donc leur contenu et examine en détail les caractéristiques et les différences de chacun.

Dans l'annexe intitulée « Guide du score parfait pour le recrutement Kakao 2022 », nous mobiliserons toutes les capacités algorithmiques que nous avons explorées jusqu'à présent pour résoudre les problèmes réellement testés lors du recrutement des développeurs Kakao 2022 en utilisant les meilleures méthodes.

Caractéristiques principales de ce livre

- Pour les lecteurs non familiarisés avec Java, ce document explique comment Java est exécuté, comment il fonctionne et sa grammaire avancée.
- Pour les lecteurs qui ne connaissent pas Kotlin, nous présentons les différences entre Java et Kotlin, les avantages uniques de Kotlin et divers conseils.
- Pour les lecteurs qui ont des difficultés à comprendre l'algorithme, nous avons inclus diverses illustrations visuelles de celui-ci.
— Pour les lecteurs qui ne sont pas familiers avec la résolution de problèmes, nous essaierons de résoudre différents types de problèmes de différentes manières.
- Pour les lecteurs ayant une connaissance limitée de l'optimisation, nous présentons différentes techniques d'optimisation et mesurons et comparons leurs performances.

Public cible de ce livre

Ce livre a été écrit dans l'optique des « jeunes développeurs qui espèrent décrocher un emploi dans la meilleure entreprise informatique de Corée ».
- Comment puis-je devenir bon en Java ?
- Comment puis-je bien apprendre Kotlin ?
- Comment puis-je réussir mes tests de codage ?
- Comment puis-je bien résoudre les problèmes d'algorithmes ?
- Comment réussir un entretien d'embauche ?

Les lecteurs de ce livre doivent avoir une expérience en programmation dans un ou plusieurs langages et être prêts à apprendre les structures de données et les algorithmes de base.
Vous pouvez lire ce livre même si vous ne connaissez pas grand-chose à Java, mais si possible, il sera beaucoup plus utile de le lire avec des connaissances de base en Java pour en comprendre le contenu.

Langage et outils de développement de ce livre

- Java 11 (requis)
- Kotlin 1.3 (requis)
- IntelliJ Community Edition (recommandé)
- Leetcode (obligatoire)
- Programmeurs (obligatoire)

Télécharger le code source GitHub

Tout le code utilisé pour résoudre les problèmes présentés dans ce livre est disponible sur GitHub, et vous pouvez télécharger le code de solution pour tous les problèmes à partir de l'adresse GitHub suivante.
https://github.com/onlybooks/java-algorithm-interview

Note de l'auteur

Publié en 2020, « Python Algorithm Interview » est devenu un ouvrage de référence pour ceux qui se préparent aux tests de codage et aux entretiens d'embauche en algorithmique.
Pendant mon passage chez Kakao, j'ai participé en tant que rédacteur de tests de codage lors du premier recrutement de développeurs à l'aveugle en Corée, ce qui a conduit à la rédaction de ce formidable ouvrage.
Dans mon premier livre, j'ai relaté mon expérience en matière de tests de codage chez Kakao, d'entretiens techniques avec de nombreux candidats pour recruter des talents, de centaines d'entretiens pour recruter des développeurs encore plus performants pour Hyundai Motor Group après mon passage chez Hyundai Motor Company, et même d'analyse approfondie des entretiens techniques dans d'autres entreprises afin de mener des entretiens encore meilleurs.
Avant tout, je suis extrêmement heureux que mes efforts pour créer le meilleur livre d'algorithmes aient porté leurs premiers fruits.


Cette nouvelle édition de « Java Algorithm Interview with Kotlin », publiée après trois ans, est un ouvrage qui hérite du même état d'esprit que le premier et s'efforce de créer le meilleur livre sur les algorithmes jamais écrit.
J'ai résolu 88 problèmes Leetcode soigneusement sélectionnés, 7 problèmes Programmers et 7 problèmes Kakao.
J'ai essayé de présenter un code beaucoup plus efficace et plus propre que la dernière fois, et je l'ai écrit à un niveau permettant de l'appliquer directement à des applications pratiques sans aucun problème.
Il arrive parfois de tomber sur des ouvrages ou des livres qui, dans leur empressement à résoudre les problèmes, présentent un code difficile à utiliser en pratique, mais au moins ce livre n'est pas de ce genre.
Après avoir réussi le test de codage et obtenu un emploi, je me suis concentré sur la fourniture de solutions logicielles utilisables en continu sur le terrain.


Tout le code présenté dans ce livre est d'un niveau suffisamment élevé pour pouvoir être appliqué directement à des applications pratiques.
Les compétences en programmation que vous acquerrez grâce à ce livre vous seront d'une grande utilité dans votre travail pratique.
De plus, comme son prédécesseur, il explique les algorithmes complexes à l'aide d'illustrations conviviales.
Nous avons déployé beaucoup d'efforts pour expliquer intuitivement cet algorithme complexe à travers plus de 200 illustrations, ainsi que des explications supplémentaires et divers faits historiques.
Ainsi, 『Java Algorithm Interview with Kotlin』 est un livre similaire à 『Python Algorithm Interview』, mais avec une mise à niveau supplémentaire.
De plus, la différence la plus notable de cet ouvrage réside dans le choix de Java comme langage de programmation.
Java est le langage le plus populaire pour les tests de codage.
J'espère que ce livre sera utile à de nombreux lecteurs.
De plus, j'ai considérablement amélioré les passages qui, selon moi, faisaient défaut dans le livre précédent.

Ce livre est utile non seulement aux développeurs travaillant dans ce domaine, mais aussi aux étudiants encore inscrits à l'université.
Il sera particulièrement utile aux jeunes diplômés en recherche d'emploi, ainsi qu'aux étudiants de master et de doctorat qui quittent le laboratoire.
Ce livre sera également un bon choix pour les recruteurs à la recherche de bonnes questions.
En tant qu'intervieweur, j'ai également participé à d'innombrables tests et concours de programmation et j'ai lu d'innombrables ouvrages sur les algorithmes afin de proposer de meilleurs problèmes.
Ce livre reflète toutes les expériences et les difficultés que j'ai vécues jusqu'à présent.

Tous les problèmes de ce livre sont accompagnés de solutions et d'explications immédiates.
Cependant, je vous recommande d'essayer d'abord de résoudre les problèmes vous-même, sans regarder la solution dans le livre.
Les solutions présentées dans ce livre ont été conçues pour être aussi optimales que possible et offrir un code élégant. Essayez donc d'abord de résoudre les problèmes, puis comparez vos solutions avec celles de ce livre afin d'en identifier les différences.
Cela vous sera d'une grande aide pour améliorer la qualité de votre code et vos méthodes de résolution, ainsi que pour apprendre les techniques d'optimisation.
SPÉCIFICATIONS DES PRODUITS
- Date de publication : 20 septembre 2023
Nombre de pages, poids, dimensions : 904 pages | 1 586 g | 180 × 235 × 43 mm
- ISBN13 : 9791189909550
- ISBN10 : 1189909553

Vous aimerez peut-être aussi

카테고리