Sobes.tech

Golang

Avez-vous de l'expérience dans l'écriture de programmes avec multithreading et asynchronie? Avez-vous eu un support dans le développement de systèmes distribués?

250

func maxPlaces(arr []int) int { maxDistance := 0 prev, first := -1, -1 for i := 0; i < len(arr); i++ { if arr[i] == 1 { if first == -1 { first = i maxDistance = max(maxDistance, i) } else { maxDistance = max(maxDistance, (i - prev) / 2) } prev = i } } maxDistance = max(maxDistance, len(arr) - 1 - prev) return maxDistance }

249

Quelle est la complexité de l'algorithme en termes de temps et de mémoire?

247

Section algorithmique : deux problèmes de niveau Medium ou supérieur sur LeetCode. Durée : 1,5 heures pour les deux problèmes.

247

Travaillez-vous actuellement ou pas, et dans quel format : bureau, hybride, télétravail?

246

/* Nous devons transférer des données d'une source à un consommateur. La source fournit les données en petits lots (~dizaines d'enregistrements), tandis que le consommateur fonctionne plus efficacement avec de gros lots. Un exemple réel est le transfert de données depuis des files d'attente de type Kafka vers la base de données Clickhouse. Source: - Pratiquement infinie. - La source ne renvoie jamais plus de MaxItems en un seul appel à Next. - Dans une "session" (un appel à la fonction Pipe), la source renvoie de nouvelles données à chaque appel à Next. - Cependant, après un redémarrage, la source recommencera à partir de la position "confirmée" précédente, indiquée par cookie. Par conséquent, *chaque* valeur de cookie renvoyée par Next, après avoir sauvegardé les données dans le récepteur, doit être confirmée avec un appel à Commit, dans le même ordre dans lequel elles ont été renvoyées par Next. Récepteur: - Ne peut pas traiter plus de MaxItems à la fois. Niveau de base: Il est nécessaire d'implémenter la fonction func Pipe(p Producer, c Consumer) error qui lit les données de la source, les regroupe dans un buffer de taille maximale MaxItems et les sauvegarde dans le récepteur, puis confirme la progression dans la source. */ const MaxItems = 9999 type Producer interface { // Next retourne: // - un lot d'éléments à traiter // - un cookie à confirmer lorsque le traitement est terminé // - une erreur Next() (items []any, cookie int, err error) // Commit est utilisé pour marquer le lot de données comme traité Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { var buf []any var cookies []int for { items, cookie, err := p.Next() if err != nil { return err } buf = append(buf, items...) cookies = append(cookies, cookie) if len(buf) >= MaxItems { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } buf = buf[:0] cookies = nil } } if len(buf) > 0 { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } } return nil }

246

Quelle est la différence entre un équilibriseur de charge L4 et un équilibriseur L7?

243

Quels indicateurs de performance avez-vous utilisés pour évaluer votre travail sur le dernier projet?

Junior — Middle
242

""" Les sièges dans une salle de cinéma sont alignés en une seule rangée. Un spectateur qui vient d'arriver choisit une place, pour s'asseoir aussi loin que possible des autres spectateurs dans la rangée. Autrement dit, la distance entre cette place, et le spectateur le plus proche doit être maximale. Il est garanti qu'il y a toujours des places libres et qu'au moins un spectateur est déjà assis. Écrivez une fonction qui, étant donné une rangée de places (un tableau de zéros et de uns), renvoie la distance (nombre d'espaces entre les sièges) entre la place choisie et le spectateur le plus proche. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 """

242

/* * Étant donné un tableau d'entiers et un nombre X, * il faut trouver le sous-tableau non vide le plus long dont le minimum est X. * Retournez la longueur de ce sous-tableau ou -1 s'il n'existe pas. */

241

Comment sont organisés les tests dans l'équipe — qui écrit quoi, quelle couverture, y a-t-il des tests E2E?

241

Comment peut-on améliorer l'efficacité de la recherche d'éléments dans une structure de données Map?

Junior — Middle
238

Comment est déterminé le temps d'exécution de l'opération d'ajout d'un élément par clé dans la structure de données Map?

Junior — Middle
237

Comment déterminer visuellement ou algorithmiquement qu'un élément est unique dans la structure de données Map?

Junior — Middle
237

Quel projet choisir pour un entretien technique et comment le décrire?

236

Quel indicateur de nombre d'opérations par seconde lors de la lecture de données avez-vous atteint ou analysé?

Middle — Middle+
235

[nom] a indiqué : à la ligne 20, uniq ne contient pas le nombre de caractères uniques, mais quelque chose d'autre. Qu'est-ce exactement ?

233

Pourquoi faut-il deux vérifications if (à la ligne 79 et à la ligne avec len(buf)==MaxItems), au lieu d'une seule?

233

Quel taux de requêtes par seconde a été atteint lors de l'écriture des données?

Junior — Middle
232

// Pour deux tableaux d'entiers de longueur N, // pour tous K de 1 à N, compter le nombre de nombres communs dans les préfixes de longueur K. // Les nombres dans le tableau peuvent se répéter, l'intersection est comptée sans tenir compte des multiplicateurs. // Un préfixe de longueur K du tableau A est les premiers K éléments du tableau A // A [1, 1] => [1], [1, 1] // B [1, 1] => [1], [1, 1] // R [1, 1] // [1, 2, 5] => [1], [1, 2], [1, 2, 5] // [1, 5, 4] => [1], [1, 5], [1, 5, 4] // [1, 1, 2]

230
/11