Skip to content

Commit

Permalink
Update
Browse files Browse the repository at this point in the history
  • Loading branch information
fortierq committed Oct 10, 2024
1 parent a9f1338 commit f7f8817
Show file tree
Hide file tree
Showing 5 changed files with 224 additions and 0 deletions.
20 changes: 20 additions & 0 deletions blog/leetcode/minPathSum.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#include <math.h>

int minPathSum(int** grid, int gridSize, int* gridColSize) {
int n = gridSize, p = gridColSize[0]; // nombres de lignes et colonnes
int** d = malloc(n*sizeof(int*));
for(int i = 0; i < n; i++) {
d[i] = malloc(p*sizeof(int));
for(int j = 0; j < p; j++) {
int a = -1;
if(i == 0 && j == 0)
a = 0;
if(i > 0)
a = d[i - 1][j];
if(j > 0 && (a == -1 || d[i][j - 1] < a))
a = d[i][j - 1];
d[i][j] = a + grid[i][j];
}
}
return d[n - 1][p - 1];
}
99 changes: 99 additions & 0 deletions docs/tp/3_tp3/tp3.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
type 'a regexp =
| Vide | Epsilon | L of 'a
| Union of 'a regexp * 'a regexp
| Concat of 'a regexp * 'a regexp
| Etoile of 'a regexp;;

(* 1 *)
let rec fusion l1 l2 = match l1, l2 with
| [], l2 -> l2
| l1, [] -> l1
| t1::q1, t2::q2 -> if t1 < t2 then t1::(fusion q1 l2)
else if t1 > t2 then t2::(fusion l1 q2)
else t1::(fusion q1 q2);;
fusion [1;3;5] [2;3;4;6]

(* 2 *)
let rec est_vide e = match e with
| Vide -> true
| Epsilon -> false
| L _ -> false
| Union (e1, e2) -> (est_vide e1) && (est_vide e2)
| Concat (e1, e2) -> (est_vide e1) || (est_vide e2)
| Etoile _ -> false;;
est_vide (Concat(L 1, Vide));;
est_vide (Etoile Vide);;

(* 3 *)
let rec a_epsilon e = match e with
| Vide -> false
| Epsilon -> true
| L _ -> false
| Union (e1, e2) -> (a_epsilon e1) || (a_epsilon e2)
| Concat (e1, e2) -> (a_epsilon e1) && (a_epsilon e2)
| Etoile _ -> true;;
a_epsilon (Concat(L 1, Epsilon));;
a_epsilon (Etoile (L 1));;

(* 6 *)
let rec p e = match e with
| Vide -> []
| Epsilon -> []
| L a -> [a]
| Union (e1, e2) -> fusion (p e1) (p e2)
| Concat (e1, e2) ->
if est_vide e1 || est_vide e2 then []
else if (a_epsilon e1) then fusion (p e1) (p e2)
else p e1
| Etoile e1 -> p e1;;
p (Union (Concat(L 1, L 3), L 2));;
p (Concat (L 1, Vide));;
p (Concat (Concat(L 1, L 3), L 2));;
p (Concat (Epsilon, L 2));;

(* 7 *)
let rec s e = match e with
| Vide -> []
| Epsilon -> []
| L a -> [a]
| Union (e1, e2) -> fusion (s e1) (s e2)
| Concat (e1, e2) ->
if est_vide e1 || est_vide e2 then []
else if a_epsilon e1 then fusion (s e1) (s e2)
else s e2
| Etoile e1 -> s e1;;
s (Union (L 2, Concat(L 1, L 3)));;
s (Concat (Vide, L 1));;
s (Concat (Concat(L 1, L 3), L 2));;
s (Concat (L 2, Epsilon));;

(* 8 *)
let rec produit l1 l2 = match l1, l2 with
| [], _ -> []
| _, [] -> []
| t1::q1, t2::q2 -> (t1, t2)::(produit [t1] q2)@(produit q1 l2);;
produit [1;2] [3;4];;

(* 9 *)
let rec f e = match e with
| Vide -> []
| Epsilon -> []
| L a -> []
| Union (e1, e2) -> fusion (f e1) (f e2)
| Concat (e1, e2) ->
if est_vide e1 || est_vide e2 then []
else let l = fusion (f e1) (f e2) in
fusion l (produit (s e1) (p e2))
| Etoile e1 -> f e1;;
f (Concat (Concat(L 1, L 3), L 2));;

(* 10 *)
let rec n_lettres e = match e with
| Vide -> 0
| Epsilon -> 0
| L _ -> 1
| Union (e1, e2) -> n_lettres e1 + n_lettres e2
| Concat (e1, e2) -> n_lettres e1 + n_lettres e2
| Etoile e1 -> n_lettres e1;;

(* 11 *)
8 changes: 8 additions & 0 deletions docs/tp/4_tp4/4_tp4.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
hide_table_of_contents: false
hide_title: false
cor: true
title: "TP 3 : Algorithme de Berry-Sethi"
---

Exo 17 LLG
91 changes: 91 additions & 0 deletions docs/tp/4_tp4/tp4.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
type 'a regexp =
| Vide | Epsilon | L of 'a
| Union of 'a regexp * 'a regexp
| Concat of 'a regexp * 'a regexp
| Etoile of 'a regexp;;

(* 1 *)
let rec fusion l1 l2 = match l1, l2 with
| [], l2 -> l2
| l1, [] -> l1
| t1::q1, t2::q2 -> if t1 < t2 then t1::(fusion q1 l2)
else if t1 > t2 then t2::(fusion l1 q2)
else t1::(fusion q1 q2);;
fusion [1;3;5] [2;3;4;6];;

(* 2 *)
let rec est_vide e = match e with
| Vide -> true
| Epsilon -> false
| L _ -> false
| Union (e1, e2) -> (est_vide e1) && (est_vide e2)
| Concat (e1, e2) -> (est_vide e1) || (est_vide e2)
| Etoile _ -> false;;

(* 3 *)
let rec a_epsilon e = match e with
| Vide -> false
| Epsilon -> true
| L _ -> false
| Union (e1, e2) -> (a_epsilon e1) || (a_epsilon e2)
| Concat (e1, e2) -> (a_epsilon e1) && (a_epsilon e2)
| Etoile _ -> true;;

(* 6 *)
let rec p e = match e with
| Vide -> []
| Epsilon -> []
| L a -> [a]
| Union (e1, e2) -> fusion (p e1) (p e2)
| Concat (e1, e2) ->
if est_vide e1 || est_vide e2 then []
else if (a_epsilon e1) then fusion (p e1) (p e2)
else p e1
| Etoile e1 -> p e1;;
p (Union (Concat(L 1, L 3), L 2));;
p (Concat (L 1, Vide));;
p (Concat (Concat(L 1, L 3), L 2));;
p (Concat (Epsilon, L 2));;

(* 7 *)
let rec s e = match e with
| Vide -> []
| Epsilon -> []
| L a -> [a]
| Union (e1, e2) -> fusion (s e1) (s e2)
| Concat (e1, e2) ->
if est_vide e1 || est_vide e2 then []
else if a_epsilon e1 then fusion (s e1) (s e2)
else s e2
| Etoile e1 -> s e1;;
s (Concat(L 1, L 3));;

(* 8 *)
let rec produit l1 l2 = match l1, l2 with
| [], _ -> []
| _, [] -> []
| t1::q1, t2::q2 -> (t1, t2)::(produit [t1] q2)@(produit q1 l2);;

(* 9 *)
let rec f e = match e with
| Vide -> []
| Epsilon -> []
| L a -> []
| Union (e1, e2) -> fusion (f e1) (f e2)
| Concat (e1, e2) ->
if est_vide e1 || est_vide e2 then []
else let l = fusion (f e1) (f e2) in
fusion l (produit (s e1) (p e2))
| Etoile e1 -> f e1;;
f (Concat (Concat(L 1, L 3), L 2));;

(* 10 *)
let rec n_lettres e = match e with
| Vide -> 0
| Epsilon -> 0
| L _ -> 1
| Union (e1, e2) -> n_lettres e1 + n_lettres e2
| Concat (e1, e2) -> n_lettres e1 + n_lettres e2
| Etoile e1 -> n_lettres e1;;

(* 11 *)
6 changes: 6 additions & 0 deletions sidebars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,10 @@ const sidebars = {};
];
});

sidebars["ds"] = [{
type: 'link',
label: 'Learn more',
href: 'https://fortierq-notes-app-ctedub.streamlit.app',
}];

module.exports = sidebars;

0 comments on commit f7f8817

Please sign in to comment.