I need to know a way to remove elements in O(1) time . I used hash table , put the values as keys but there is a problem that the values are not distinct . Is there a way to remove elements in O(1) time if they aren't distinct ?
| № | Пользователь | Рейтинг |
|---|---|---|
| 1 | Benq | 3676 |
| 2 | jiangly | 3670 |
| 3 | Kevin114514 | 3657 |
| 4 | maroonrk | 3355 |
| 5 | Um_nik | 3353 |
| 6 | squareOf105 | 3346 |
| 7 | tourist | 3343 |
| 8 | strapple | 3324 |
| 9 | heuristica | 3322 |
| 10 | jiangbowen | 3291 |
| Страны | Города | Организации | Всё → |
| № | Пользователь | Вклад |
|---|---|---|
| 1 | Qingyu | 158 |
| 2 | nik_exists | 150 |
| 2 | maspy | 150 |
| 4 | AmShZ | 143 |
| 5 | Um_nik | 142 |
| 6 | Errichto | 139 |
| 7 | adamant | 137 |
| 8 | BledDest | 135 |
| 9 | maroonrk | 133 |
| 10 | qwexd | 130 |
I need to know a way to remove elements in O(1) time . I used hash table , put the values as keys but there is a problem that the values are not distinct . Is there a way to remove elements in O(1) time if they aren't distinct ?
| Название |
|---|



I'm not exactly sure of what you mean, but using a linked list seems to be the solution to your problem.
No , I don't think that it will work . What I meant is that assume you have an array of numbers . You perform some operations and then come up with a number , you want to delete this element from the array in O(1) time . I want to know what is the best data structure to use at this moment .
Do you want to delete an element with value x, or an element with index x?
an element with value x .
You could use a hash table of vectors where each entry of the hash table consist of the list of indexes of that value that you want to delete. If you want to select a particular index in O(1) time, you can compress the indexes.
thanks I will try this way .