Sumários

T6

9 Abril 2024, 16:30 João Pedro Guerreiro Neto


Problem Decomposition, dynamic programming as a technique to solve problems. Bottom-up and top-down approaches to dynamic programming. The need for memoization. Solving classical examples, like longest increasing sub-sequence, the knapsack problem, and matrix multiplication.

TP5

26 Março 2024, 18:30 João Pedro Guerreiro Neto


Exercises about divide and conquer and greedy algorithm.

T5

26 Março 2024, 16:30 João Pedro Guerreiro Neto


Problem Decomposition, divide and conquer, greedy algorithms. Using divide and conquer to reduce algorithmic complexity. Solving classical examples like Karatsuba multiplication, maximum sub-array, number of inversions, and finding nearest neighbors. Introducing greedy algorithms. The greedy choice property. Solving the fractional version of the Knapsack problem, task scheduling, interval coverage and Huffman coding

TP4

19 Março 2024, 18:30 João Pedro Guerreiro Neto


Exercises about membership algorithms and data structures.

T4

19 Março 2024, 16:30 João Pedro Guerreiro Neto


Membership algorithms and data structures (hashing, Bag dataset, Bloom Filters, Tries, Disjoint Sets).