ShowStopper728's blog

By ShowStopper728, history, 9 years ago, In English

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 ?

  • Vote: I like it
  • -7
  • Vote: I do not like it

»
9 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

I'm not exactly sure of what you mean, but using a linked list seems to be the solution to your problem.

»
9 years ago, hide # |
← Rev. 2  
Vote: I like it 0 Vote: I do not like it

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.