
先将数字累加,然后压入数组中,由此得到一系列的区间。
只要我们产生一个随机数,看落在哪个子区间就行了。
例如,输入3,2,5
就表示产生0的可能性占3份,产生1的可能性占2份,产生2的可能性占5份,
于是产生一个数组:3,5,10
再随机生成一个数,落在[0,10)上,
判断该随机数落在哪个子区间就可以产生对应的结果了。
0:[0,3)
1:[3,5)
2:[5,10)
至于怎么判断随机数落在哪个子区间,此处给出2种方法。
线性查找,更简单
class Solution {
public:
Solution(vector<int>& w) {
for(int i=0;i<w.size();++i){
sum+=w[i];
vec_sum.push_back(sum);
}
}
int

最低0.47元/天 解锁文章
1965

被折叠的 条评论
为什么被折叠?



