Recapitulare - Tehnici de programare
Exerciții de consolidare pentru Modulul 5: sume parțiale, two pointers, sliding window, șmenul lui Mars.
Exercițiul 1: Sume parțiale - suma pe interval
Avem un vector și trebuie să răspundem la întrebări: “care este suma elementelor de la poziția st la poziția dr?”. Completează formula care calculează suma pe interval folosind vectorul de sume parțiale sp.
Input:
8 2
3 1 4 1 5 9 2 6
3 6
1 8Output:
19
31Exercițiul 2: Two Pointers - pereche cu suma S
Avem un vector sortat și un număr S. Trebuie să găsim două elemente a căror sumă este exact S. Completează corpul buclei: ce facem când suma e prea mică? Dar când e prea mare?
Input:
7 10
1 3 4 5 7 9 11Output:
1 9Exercițiul 3: Sliding Window - suma maximă pe K elemente
Avem un vector și un număr K. Trebuie să găsim suma maximă a unei ferestre de exact K elemente consecutive. Completează linia care glisează fereastra: ce element adăugăm și ce element scoatem?
Input:
8 3
3 1 4 1 5 9 2 6Output:
17Exercițiul 4: Șmenul lui Mars - adunare pe interval
Primim operații de forma “adaugă val pe intervalul [st, dr]”. Completează cele două marcaje din vectorul de diferențe d.
Input:
8 2
2 5 3
4 7 2Output:
0 3 3 5 5 2 2 0Exercițiul 5: Cea mai lungă secvență crescătoare
Parcurgem vectorul și menținem lungimea secvenței crescătoare curente. Completează: ce condiție verificăm și cu ce resetăm contorul?
Input:
8
2 5 7 3 4 8 9 1Output:
4