LeetCode—剑指Offer:n个骰子的点数(动态规划)

n个骰子的点数(简单)

2020年9月13日

题目来源:力扣

LeetCode—剑指Offer:n个骰子的点数(动态规划)_第1张图片

解题
参考自题解

class Solution {
     
    public double[] twoSum(int n) {
     
        //初始化原数组,用来存放上个骰子概率数组
        double[] pre={
     1/6d,1/6d,1/6d,1/6d,1/6d,1/6d};
        for(int i=2;i<=n;i++){
     
            //存放当前骰子概率数组,5*i+1由骰子点数[n,6n],确定6n-n+1=5n+1
            double[] tmp=new double[5*i+1];
            for(int j=0;j<pre.length;j++){
     
                for(int x=0;x<6;x++){
     
                    //每个概率都与1/6的概率相乘后相加
                    tmp[j+x]+=pre[j]/6;
                }
            }
            pre=tmp;
        }
        return pre;
    }
}

LeetCode—剑指Offer:n个骰子的点数(动态规划)_第2张图片

你可能感兴趣的:(LeetCode)