Aller au contenu principal

Compétition Kaggle : Survivants du Titanic

Quentin Fortier
Professeur d'informatique

Vous pouvez utiliser ce Codespace pour la compétition d'apprentissage automatique sur les survivants du Titanic. Voir la description dans le README. Le lien vers la compétition Kaggle vous a été envoyé par mail. La compétition est ouverte jusqu'au 22 février au soir.

Colle 2

Quentin Fortier
Professeur d'informatique
  • Décidabilité : tout le cours.
  • Complexité : tout le cours.
  • Algorithme d'approximation : tout le cours.
  • Algorithme probabiliste : tout le cours.

Bien sûr, on pourra donnner des exercices utilisant des graphes, par exemple...

LeetCode 5

Quentin Fortier
Professeur d'informatique

Deux exercices LeetCode pour ces vacances.

Indice 1er exercice

Parcourir chaque indice du tableau en conservant la somme maximale se terminant à cet indice.

Indice 2ème exercice

Utiliser un algorithme par programmation dynamique en calculant b[i][j] qui vaut vrai si la sous-chaîne d'indice i à j est un palindrome.

Solution
int maxSubArray(int* nums, int numsSize) {
int maxi = nums[0], max_cur = nums[0];
for(int i = 1; i < numsSize; i++) {
// invariant : max_cur est la somme consécutive max qui se termine en i
max_cur = max_cur + nums[i];
if(max_cur < nums[i])
max_cur = nums[i];
if(max_cur > maxi)
maxi = max_cur;
}
return maxi;
}
Solution
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* subword(char* s, int i, int j) {
char* t = malloc(j - i + 2);
for(int k = i; k <= j; k++)
t[k - i] = s[k];
t[j - i + 1] = '\0';
return t;
}

char* longestPalindrome(char* s) {
int n = strlen(s);
bool** b = malloc(n*sizeof(bool*));
for(int i = 0; i < n; i++) {
b[i] = malloc(n*sizeof(bool));
for(int j = 0; j < n; j++) {
b[i][j] = true;
}
}

int imax = 0, kmax = 0;
for(int k = 1; k < n; k++)
for(int i = 0; i < n - k; i++) {
b[i][i + k] = s[i] == s[i + k] && b[i + 1][i + k - 1];
if(b[i][i + k]) {
kmax = k;
imax = i;
}
}
return subword(s, imax, imax + kmax);
}

TD 15/12

Quentin Fortier
Professeur d'informatique
  • Fin TD "Décidabilité et complexité".
  • En MPI* : TD "Algorithme d'approximation" exo 1.

À faire pendant les vacances :

  • DM CCP