Leetcode——概率问题

1227.飞机座位分配概率

https://leetcode-cn.com/problems/airplane-seat-assignment-probability/

只有当n=1时,一定会坐到自己的位置

其他情况下  ,要么就是坐对位置,要么就是坐错位置,所以概率为0.5。 

double nthPersonGetsNthSeat(int n){
                           //要么就是坐对位置,要么就是坐错位置,除了n=1的时候概率为1
return n==1?1.0:0.5;       //注意这里是== 而不是=
}

470.用rand7()实现rand10()

https://leetcode-cn.com/problems/implement-rand10-using-rand7/

 

已知 rand N() 可以等概率的生成[1, N]范围的随机数
那么:
(rand X() - 1) × Y + rand Y()  ==》 可以等概率的生成[1, X * Y]范围的随机数
即实现了 rand XY()

int rand10() {
    while(true)
    {
    int num=(rand7()-1)*7+rand7();  //等概率生产[1,49]范围的随机数
    if(num<=40)return num%10+1;     //拒绝采样,并返回[1,10]范围的随机数
}
}

LCP 11.期望个数统计

https://leetcode-cn.com/problems/qi-wang-ge-shu-tong-ji/

本题实质是就是统计数组中不同元素的个数。



int expectNumber(int* scores, int scoresSize){
int hash[1000001]={0};int sum=0;     //初始化哈希表
for(int i=0;i<scoresSize;i++)        
{
    hash[scores[i]]++;}              //统计每个数出现的次数
    for(int j=0;j<1000001;j++){
    if(hash[j]!=0)                   //不止出现一个的
    sum++;
}return sum;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未央吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值