0
点赞
收藏
分享

微信扫一扫

【Leetcode-每日一题】找出缺失的观测数据

东林梁 2022-03-27 阅读 38

找出缺失的观测数据
难度:中等
在这里插入图片描述
在这里插入图片描述
纯纯的数学题,题目不难,注意细节的处理。
1、通过平均数mean * (rolls的长度 + n)得到所有数据的总和,遍历已经存在的数据依次减去,得到缺失的观测数据的总和。
2、现在我们有了总和 cnt缺失的数据个数n,首先判断数据是否合法,那么需要满足条件
1、cnt > n (每个数据最小值为1)
2、cnt < 6n (每个数据最大值为6)
若上述条件满足,我们只需要将cnt平均分到每个数据即可。

代码如下:

    public int[] missingRolls(int[] rolls, int mean, int n) {
        int len = rolls.length;
        int cnt = (len+n) * mean;
        for (int roll : rolls) {
            cnt -= roll;
        }
        int[] res = new int[n];
        if (cnt > 6*n || cnt < n){
            return new int[0];
        }
        for (int i = 0; i < n; i++) {
            res[i] = cnt/(n-i);
            cnt -= res[i];
        }
        if (cnt%n != 0){
            res[n-1] = cnt;
        }
        return res;
    }

执行结果:成功
在这里插入图片描述

举报

相关推荐

0 条评论