Informatică, întrebare adresată de alexandrudanpop, 8 ani în urmă

Scrieți funcția care are antetul:

int NrMinMaxAp(vector &a)

Funcția va returna numărul care apare de cele mai multe ori în a. Dacă există mai multe numere care apar de număr maxim de ori, se va returna minimul dintre ele.

#3798 pbinfo


lucaciucandrei: este pentru la scoala problema? ai voie sa folosesti stl sau ti se cere s-o faci clasic?
alexandrudanpop: nu ii pt scoala, incerc eu sa invat singur in plus

Răspunsuri la întrebare

Răspuns de lucaciucandrei
3

int NrMinMaxAp(std::vector < int > & a) {

   std::vector < int > ::iterator i;

   std::map < int, int > va;

   std::map < int, int > ::iterator vai;

   int min, k;

   for (i = a.begin(); i <= a.end(); i++)

       va[ * i]++;

   min = va.begin() -> first;

   k = va.begin() -> second;

   vai = ++va.begin();

   for (; vai != va.end(); vai++)

       if (vai -> second > k) {

           k = vai -> second;

           min = vai -> first;

       }

   else

       if (vai -> second == k)

           if (vai -> first < min)

               min = vai -> first;

   return min;

}

Alte întrebări interesante