Recherche du Premier Caractère Unique dans une Chaîne en Java (LeetCode 387)
La tâche consiste à identifier le premier caractère non répétitif au sein d'une chaîne de caractères donnée et à renvoyer son indice. Si aucun caractère unique n'est trouvé, la fonction doit retourner -1.
Exemples :
s = "leetcode" retourne 0 (le caractère 'l' est le premier unique)
s = "loveleetcode" retourne 2 (le caractèr ...
Publié le 25 juillet à 04h26
Somme de Minkowski et Enveloppes Convexes
Définition Fondamentale
La somme de Minkowski de deux ensembles de points \(A\) et \(B\) dans un espace vectoriel est définie par l'ensemble :
Propriétés des Enveloppes Convexes
Pour deux enveloppes convexes \(P\) et \(Q\), les propriétés suivantes simplifient considérablement le calcul :
La somme de Minkowski \(P + Q\) est elle-même une enve ...
Publié le 21 juillet à 07h41
Évaluation d'Expressions Arithmétiques Utilisant des Piles
Les piles (ou stacks) sont des structures de données fondamentales en informatique, suivant le prnicipe LIFO (Last-In, First-Out), c'est-à-dire que le dernier élément ajouté est le premier à être retiré. Elles sont couramment utilisées pour gérer la mémoire des appels de fonctions, l'analyse syntaxique de code, et bien sûr, l'évaluation d'expre ...
Publié le 20 juillet à 21h25
Problèmes LeetCode courants et solutions optimisées en C#
Somme de deux nombres
Étant donné un tableau d'entiers nombres et une valeur cible cible, trouvez deux indices dans le tableau dont les éléments s'additionnent pour atteindre la cible. Chaque entrée n'a qu'une seule solution, et vous ne pouvez pas utiliser le même élément deux fois.
Exemple : Avec nombres = [2, 7, 11, 15] et cible = 9, les i ...
Publié le 20 juillet à 12h24
Arbres binaires et algorithmes de backtracking
Les arbres binaires sont des structures de données fondamentales. Cet article explore les algorithmes courants liés à leur manipulation, en incluant la construction, le parcours, la recherche et la modification.
Définition d'un nœud d'arbre binaire
class TreeNode {
int data;
TreeNode leftChild;
TreeNode rightChild;
TreeNode(in ...
Publié le 20 juillet à 02h48
Solutions aux Problèmes du AtCoder Beginner Contest 354
A - Plante Exponentielle
Ce problème décrit une plante dont la hauteur augmente de manière exponentielle chaque jour. Initialement, la hauteur est de 1. Chaque jour, la plante double sa hauteur cumulée jusqu'à présent. Nous devons déterminer le nombre minimal de jours nécessaires pour que la plante atteigne ou dépasse une hauteur cible spécifié ...
Publié le 19 juillet à 18h26
Calcul de la Somme Minimale d'un Chemin dans un Triangle
On vous fournit une structure de données représentant un triangle de nombres entiers. Votre tâche est de déterminer la somme minimale des valeurs le long d'un chemin qui part du sommet du triangle et se termine sur l'une des cellules de sa base. La règle de déplacement est la suivante : depuis un élément triangle[i][j] (où i est l'indice de la ...
Publié le 19 juillet à 05h37
Algorithmes classiques : élimination par position, combinaisons de somme et distance d'édition
Élimination des positions impaires
Énoncé
Étant donné une séquence contenant tous les entiers de 0 à n en ordre croissant, on applique un filtrage répété : à chaque passage, on supprime les éléments situés aux positions impaires. On répète cette opération jusqu'à ce qu'il ne reste qu'un seul nombre. Il faut déterminer ce dernier nombre survi ...
Publié le 18 juillet à 20h58
Implémentation d'une file d'attente avec deux piles en Go
Problématique
232. Implémenter une file d'attente avec des piles
Utilisez deux piles pour implémenter une file d'attente de premier entré, premier sorti (FIFO). Votre file d'attente doit prendre en charge toutes les opérations standard (ajouter, retirer, consulter, vérifier si vide) :
Implémentez la classe FileAttente :
void ajouter(int x) : a ...
Publié le 18 juillet à 09h15
Intersection de Lignes (Géométrie Comput de Base + Détermination de la Relation Positionnelle de Deux L Droites)
Lien du problème : http://poj.org/problem?id=1269
Description :
Nous savons tous qu'une paire de points distincts sur un plan définit une ligne et qu'une paire de lignes sur un plan intersectera de trois manières : 1) aucune intersection car elles sont parallèles, 2) intersection en une ligne car elles se superposent (c'est-à-dire qu'elles sont ...
Publié le 18 juillet à 09h01