Changes (sets) the index as number >>> cont = NumberContainer() >>> cont.change(0, 10) >>> cont.change(0, 20) >>> cont.change(-13, 20) >>> cont.change(-100030, 20032903290)
(self, index: int, number: int)
| 123 | return array |
| 124 | |
| 125 | def change(self, index: int, number: int) -> None: |
| 126 | """ |
| 127 | Changes (sets) the index as number |
| 128 | |
| 129 | >>> cont = NumberContainer() |
| 130 | >>> cont.change(0, 10) |
| 131 | >>> cont.change(0, 20) |
| 132 | >>> cont.change(-13, 20) |
| 133 | >>> cont.change(-100030, 20032903290) |
| 134 | """ |
| 135 | # Remove previous index |
| 136 | if index in self.indexmap: |
| 137 | n = self.indexmap[index] |
| 138 | if len(self.numbermap[n]) == 1: |
| 139 | del self.numbermap[n] |
| 140 | else: |
| 141 | self.numbermap[n] = self.binary_search_delete(self.numbermap[n], index) |
| 142 | |
| 143 | # Set new index |
| 144 | self.indexmap[index] = number |
| 145 | |
| 146 | # Number not seen before or empty so insert number value |
| 147 | if number not in self.numbermap: |
| 148 | self.numbermap[number] = [index] |
| 149 | |
| 150 | # Here we need to perform a binary search insertion in order to insert |
| 151 | # The item in the correct place |
| 152 | else: |
| 153 | self.numbermap[number] = self.binary_search_insert( |
| 154 | self.numbermap[number], index |
| 155 | ) |
| 156 | |
| 157 | def find(self, number: int) -> int: |
| 158 | """ |
nothing calls this directly
no test coverage detected