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