(UA) IT/Tech Ukrainians in Canada
-
створюєш пять інстанс проперті: data - звичайний хешмеп де зберігаєш ключ-значення ttl_map - хешмеп де ключ - тайм ту ікспайр queue_ll = імплементиш чергу у вигляді doubly_linked_list, де кожна нода зберігає ключ і тайм ту ікспайр node_map - хешмеп де ключ-нода з списку вище total_sum - ну тут ясно в get методі просто дістаєш значення з data, попередньо перевіряючи за допомогою ttl_map чи воно ще не заекспайрилось. в set методі записуєш значення і ТТІ, якщо ключ вже існує - оновлюєш відповідно queue_ll, в іншому випадку додаєш нову ноду в кінець в двох методах вище оновлюєш total_sum відповідно в getAverage перед тим як поділити total_sum на довжину data, видалити заекспайрені ключі, ітеруючись по queue_ll і заапдейтити total_sum Не кажу, що це оптимальний варіант, але до іншого не додумався 😶
-
И там, и там оч классная природа, круто
-
Де там спрей від духоти?)
-
Додзвонювався з першого разу, також дзвонив зранку
-
Я жив у Литві задовго до війни біля 1 року. Мені подобалась країна, на ту ж айтішну зп можно жити дуже-дуже непогано. Плюс є дешеві рейси в будь-яку точку ЄС)
-
По-моему подобное решение делал neetcode или кто-то на решениях другой, с помощью доп структуры достичь 0(1)
-
init(self, ttl_time_ms:int) -> None get(self, key) -> int set(self, key, value) -> None getAverage(self) -> int
-
Вижу везде 30 дней в пол года/60дней в год, чёт на вижу виза раннов в Тайланде, Вьетнаме, Индонезии