Untitled

 avatar
unknown
plain_text
5 months ago
915 B
2
Indexable
class NumberContainers:

    def __init__(self):
        self.index_to_number = {}
        self.number_to_indexes = defaultdict(SortedSet)

    def change(self, index: int, number: int) -> None:
        if index in self.index_to_number:
            self.number_to_indexes[self.index_to_number[index]].remove(index)
            if len(self.number_to_indexes[self.index_to_number[index]]) == 0:
                del self.number_to_indexes[self.index_to_number[index]]
        self.index_to_number[index] = number
        self.number_to_indexes[number].add(index)

    def find(self, number: int) -> int:
        if number in self.number_to_indexes:
            return self.number_to_indexes[number][0]
        else:
            return -1


# Your NumberContainers object will be instantiated and called as such:
# obj = NumberContainers()
# obj.change(index,number)
# param_2 = obj.find(number)
Editor is loading...
Leave a Comment