【刷题日记】2028. 找出缺失的观测数据

简介: 本次刷题日记的第 12 篇,力扣题为:2028. 找出缺失的观测数据赛 ,中等

【刷题日记】2028. 找出缺失的观测数据

本次刷题日记的第 12 篇,力扣题为:2028. 找出缺失的观测数据赛中等

一、题目描述:

image.png

稍微看完题目,第一反应,这是一个数学题,实际仔细看完之后,这确实又是一个数学题,只是需要我们用编程的方式来实现而已 , 那我们一起来分析一下


二、思路分析:

1、这道题考察了什么思想?你的思路是什么?

按照题目中给出的信息,我们可以知道有这些重要的点:

  • 给出的 rolls 数组中的元素和我们需要补充的元素数据范围都是 1 - 6
  • 现在我们是知道平均值 mean,知道 n+m 的数量,来计算丢失的数据,也可以是找到整个观测数据
  • 找出 n 对应的数组,可能会有很多个版本,我们只需要输出一个版本就可以了

我们可以按照示例来推理一下:

示例:rolls = [1,5,6], mean = 3, n = 4

image.png

根据上述的模拟,我们知道,核心点就是计算能给到 n 个数字的总和 remainSum ,如果 remainSum 小于 n 或者 remainSum  大于 6*n ,则是不满足我们题意的

当得到符合要求的 remainSum   时,我们就可以来分配 n 个数字对应的值了,分配的逻辑也是很简单的

当得到符合要求的 remainSum   时 , remainSum /n  一定是 小于等于 6 的,且如果是等于的情况,一定是没有余数的

则,我们的分配原则就是,将 remainSum  % n 得到的余数,分成多分追加到每一个平均数上即可

三、编码

根据上述逻辑和分析,我们就可以翻译成如下代码,就按照咱们数学的方式来处理即可

编码如下:

func missingRolls(rolls []int, mean int, n int) []int {
    remainSum := mean * (len(rolls) + n )
    for _,num := range rolls {
        remainSum = remainSum - num
    }
    // 如果剩余的数据不在 n - 6*n 之间,那么就是找不到缺失的数据
    if remainSum < n || remainSum > 6 * n {
        return nil
    }
    // 开始构造数据,此处的 remainSum 一定在  n - 6*n 之间 , 则 remainSum / n 一定是 shang 小于 6 ,再加上 yushu
    // 则我们可以构造这么一个版本:yushu 个 shang+1 , 和 (n-yushu)个 shang 即可
    shang,yushu := remainSum/n , remainSum %n
    res := make([]int, n)
    for i:=0;i<n;i++{
        res[i] = shang
        if i < yushu{
            res[i]++
        }
    }
    return res
}

实际编码也确实是对于上面思想的翻译,翻译出来的代码如上,主要是要考虑好 n 中能承载的数据范围,以及如何去分配 n 个数据的值

四、总结:

不难理解,此处我们的循环是 n+m ,因此时间复杂度是 O(n+m)  , 空间复杂度是 O(1)

原题地址:2028. 找出缺失的观测数据

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

image.png

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~


相关文章
|
8月前
leetcode-2028:找出缺失的观测数据
leetcode-2028:找出缺失的观测数据
62 0
|
监控 JavaScript 前端开发
百度统计分析埋点最佳实战篇
百度统计分析埋点最佳实战篇
2007 0
百度统计分析埋点最佳实战篇
|
Cloud Native Go
面试中的行为考察:展示你的人际交往能力
面试中的行为考察:展示你的人际交往能力
86 0
|
JSON 前端开发 数据格式
你想要的错题分析
你想要的错题分析
|
机器学习/深度学习 算法 数据挖掘
|
缓存 前端开发 数据可视化
前端同学在可观测性的启蒙与初试探--快速实现根因分析/业务大盘
前端同学在可观测性的启蒙与初试探--快速实现根因分析/业务大盘
300 0
前端同学在可观测性的启蒙与初试探--快速实现根因分析/业务大盘
|
机器学习/深度学习 算法
量化交易分析:4000多只股票2015-2022年历史数据分享,供小伙伴们学习交流
量化交易分析:4000多只股票2015-2022年历史数据分享,供小伙伴们学习交流
量化交易分析:4000多只股票2015-2022年历史数据分享,供小伙伴们学习交流
|
移动开发 应用服务中间件 nginx
没想到,日志还能这么分析!
这次,将用一个大概几万条记录的 nginx 日志文件作为案例,一起来看看如何分析出「用户信息」。
没想到,日志还能这么分析!
|
监控 小程序 数据挖掘
5步法,快速找到数据分析思路
在工作中,经常有小伙伴遇到:做数据分析没思路的问题。如果是日常工作还好,可以对着以前的报表抄一份。但是面试时遇到没思路的问题,可能就含恨而终了。今天就分享下,如何快速找到思路。 比如被面试官问道:“你要如何分析一款APP”。此时忽然脑子短路,不知道从何说起,该怎么办呢?别着急,分五步,一步步来。
179 0
5步法,快速找到数据分析思路
|
程序员
程序员数学(10)--数据的收集、整理与描述
本文目录 1. 背景 2. 全面调查 3. 抽样调查 4. 常用统计图
137 0
程序员数学(10)--数据的收集、整理与描述