编程珠玑1.6随机生成k个小于n并且不重复的整数(Java)
2018-04-04 本文已影响0人
o尐白
近日看编程珠玑,对1.6问题随机生成k个小于n并且不重复的整数的麻烦进行思考。
其中最容易想到的就是维持俩个数组/一个数组一个Map,
在随机时判断是否已存在,但如此效率低O(n^2)且占用内存空间。
好了,描述一下想法:
希望能写一个时间复杂度能在线性阶O(n)且空间复杂度最好是一个简单变量。
image.png
时间复杂度:n+n = 2n,满足O(n)
空间复杂度:n+1