In this case, the MAX is only 5, so I could check the duplicates one by one, but how could I do this in a simpler way? For example, what if the MAX has a value of 20? Thanks
Here is an efficient solution for fast creation of a randomized array. After randomization you can simply pick the n
-th element e
of the array, increment n
and return e
. This solution has O(1) for getting a random number and O(n) for initialization, but as a tradeoff requires a good amount of memory if n gets large enough.