LeetCode 1230. 抛掷硬币(DP)
发布日期:2021-07-01 03:30:06
浏览次数:2
分类:技术文章
本文共 1013 字,大约阅读时间需要 3 分钟。
文章目录
1. 题目
有一些不规则的硬币。在这些硬币中,prob[i] 表示第 i 枚硬币正面朝上的概率。
请对每一枚硬币抛掷 一次,然后返回正面朝上的硬币数等于 target 的概率。
示例 1:输入:prob = [0.4], target = 1输出:0.40000示例 2:输入:prob = [0.5,0.5,0.5,0.5,0.5], target = 0输出:0.03125 提示:1 <= prob.length <= 10000 <= prob[i] <= 10 <= target <= prob.length如果答案与标准答案的误差在 10^-5 内,则被视为正确答案。
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/toss-strange-coins
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- d p [ i ] [ j ] dp[i][j] dp[i][j] 表示 抛完第 i 枚后,有 j 个朝上的概率
class Solution { public: double probabilityOfHeads(vector& prob, int target) { int n = prob.size(), i, j, k; vector > dp(n+1, vector (target+1, 0.0)); dp[0][0] = 1.0;//初始化 for(i = 0; i < n; ++i) for(j = 0; j <= min(i,target); ++j) { dp[i+1][j] += dp[i][j]*(1-prob[i]);//下一枚是反面 if(j+1 <= target) dp[i+1][j+1] += dp[i][j]*(prob[i]);//下一枚是正面 } return dp[n][target]; }};
124 ms 54.6 MB
我的CSDN
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
转载地址:https://michael.blog.csdn.net/article/details/107577040 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月28日 20时59分41秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Swift 4迁移总结:喜忧参半,新的起点
2019-05-03
iOS 版本更新(强制更新)检测问题
2019-05-03
项目在iOS11上遇到的小问题
2019-05-03
Python 简单入门指北(一)
2019-05-03
iOS开发基础知识--碎片1
2019-05-03
iOS开发UI篇—IOS开发中Xcode的一些使用技巧
2019-05-03
学习小结
2019-05-03
HTTPS
2019-05-03
iOS开发网络篇—监测网络状态
2019-05-03
李洪强实现横向滚动的View<一>
2019-05-03
iOS开发拓展篇—音频处理(音乐播放器6)
2019-05-03
李洪强实现横向滚动的View<二>
2019-05-03
iOS开发拓展篇—应用之间的跳转和数据传递
2019-05-03
使用NSURLSession获取网络数据和下载文件
2019-05-03
iOS开发拓展篇-XMPP简单介绍
2019-05-03
iOS开发网络篇—HTTP协议
2019-05-03
Struts2(1)简介
2019-05-03
css中的字体
2019-05-03
webService-cxf
2019-05-03
java实现ftp文件的上传与下载
2019-05-03