4. Se citeste un vector de numere intregi, de lungime n. Se cere: a) Sa se inlocuiasca valoarea maxima a elementelor din vector cu inversul sau. (Presupunem ca maximul este unic)
Răspunsuri la întrebare
Pentru a rezolva aceasta problema, putem parcurge vectorul incepand de la primul element si pastram o variabila care sa retina valoarea maxima la fiecare pas. Dupa ce am parcurs intreg vectorul, putem inlocui elementul care are valoarea maxima cu inversul sau.
In cazul in care vectorul contine elemente negative, trebuie sa luam in considerare faptul ca inversul unui numar negativ este pozitiv. De exemplu, inversul lui -5 este 1/5, care este pozitiv.
In pseudocod, aceasta rezolvare ar arata in felul urmator:
pentru i = 0 la n-1
daca vector[i] > valoare_maxima
valoare_maxima = vector[i]
inversul_valorii_maxime = 1 / valoare_maxima
pentru i = 0 la n-1
daca vector[i] == valoare_maxima
vector[i] = inversul_valorii_maxime
Aceasta rezolvare are complexitatea temporala O(n), ceea ce inseamna ca ea parcurge vectorul de doua ori, ceea ce este eficient din punct de vedere al timpului de executie.
2. Nu ai initializat valoare_maxima in acest algoritm.