Hej,
Ostatnio robiłem zadanie rekrutacyjne, w sumie wydaje mi się że mam dobre rozwiązanie, ale chciałym się z kimś skonsultować :)
Celem jest implementacja klasy opartej na mapie z c++. Chodzi konkretnie o jedna metode. Mapa będzie przechowywać przedziały. Np. jeśli mamy dla klucza o wartości 0, wartość 'CAT', potem dla klucza o wartośći '5', wartosc 'DOG', i dla '10' mamy 'FISH', to należy to rozumieć jako przedziały (0-4) o wartosci CAT, potem (5-9) DOG, i (10 - inf) FISH.
Ogolnie przedzial zaczyna sie od okreslonego punktu, do albo konca mapy, albo do kolejnego roznego punktu.
Zakres kluczy załóżmy że to char, czyli możliwe klucze są od -128 do 127.
Celem zadania jest napisanie funkcji insert(key start, key end, value), która wstawi w przedziale start - end wartosci value. Czyli po prostu stworzy przedział.
Możemy tylko pisać kod w tej funkcji. Czyli may jakaś mape z c++, i możemy sobie z niej korzystać za pomocą standardowych funkcji z C++, ew tego co sami w niej napiszemy.
Pytanie brzmi, jaką najszybciej da się osiągnąć złożoność. W zadaniu była informacja że powinniśmy użyć tylko dwóch operacji o zamortyzowanym koszcie O(logn).