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