数组求L位置到R位置之和
给定一个数组,长度为N,给定左边位置L,右边位置R,求L到R位置的和。
思路1:
优点:在查询频繁时,速度快。
缺点:浪费空间,有接近1/2位置浪费
| 0 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| 1 | |||||
| 2 | X | ||||
| 3 | X | X | |||
| 4 | X | X | X | ||
| 5 | X | X | X | X |
思路2:
优点:
缺点:慢
思路3:
提供一个预数组,长度也为N,每个位置存储0-N位置的和,在求L到R位置的和时只需array[R]-array[L-1].
如果L为0,直接返回array[R]
优点:相比于思路1,不浪费空间
缺点:在请求频繁时效率低于思路1,需要减操作
链接:
https://github.com/feng0xing/note/tree/feature/develop algorithm模块 work.day.two.SumArrayFromLeftRight
�
Math.Random
Math.Random 范围[0,1)
�给出某个数x->【0,1),随机数x出现在0-x范围的概率为x
�给出某个数x->【0,1),使随机数x出现在0-x范围的概率为x的平方
�给出某个数x->【0,1),使随机数x出现在0-x范围的概率为x的3次方
代码地址:
algorithm模块 work.day.two.MathRandom
等概率扩展
给定一个函数f(x),其中1-5都是等概率出现,只能使用f(x)的情况下,使1-7等概率出现。
代码地址:
algorithm模块 work.day.two.EqualProbabilityExtension
不等概率变等概率
给定一个函数f(x),其中0-1都是固定概率,不等概率出现,只能使用f(x)的情况下,使0-1等概率出现
代码地址:
algorithm模块 work.day.two.NotEqualProbabilityToEqual
对数器:
对方法进行验证,使用随机样本,验证方法的正确性。
�
