前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Leetcode -643.子数组最大平均值Ⅰ -645.错误的集合】

【Leetcode -643.子数组最大平均值Ⅰ -645.错误的集合】

作者头像
YoungMLet
发布2024-03-01 09:57:18
1100
发布2024-03-01 09:57:18
举报
文章被收录于专栏:C++/Linux

Leetcode -643.子数组最大平均值Ⅰ

题目:给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。

请你找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。

任何误差小于 10^- 5 的答案都将被视为正确答案。

示例 1: 输入:nums = [1, 12, -5, -6, 50, 3], k = 4 输出:12.75 解释:最大平均数(12 - 5 - 6 + 50) / 4 = 51 / 4 = 12.75

示例 2: 输入:nums = [5], k = 1 输出:5.00000

思路是使用滑动窗口,依次取这 k 项中的和的较大值,如下图所示:

代码如下:

代码语言:javascript
复制
		double findMaxAverage(int* nums, int numsSize, int k)
		{
		    double sum = 0, ans = 0;
		
		    //先将前 k 项和加起来
		    for (int i = 0; i < k; i++)
		    {
		        sum += nums[i];
		    }
		
		    //前 k 项和赋给最大且长度为 k 的连续子数组元素的和
		    double maxsum = sum;
		
		    //将前 k 项和减去这 k 项和中的第一项,再加上当前项,就实现了滑动窗口
		    //再比较当前 sum 与 maxsum 的较大值,maxsum取较大值
		    for (int i = k; i < numsSize; i++)
		    {
		        sum = sum - nums[i - k] + nums[i];
		        maxsum = fmax(sum, maxsum);
		    }
		
		    //最后返回平均数
		    return maxsum / k;
		}

Leetcode -645.错误的集合

题目:集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合丢失了一个数字并且有一个数字重复 。

给定一个数组 nums 代表了集合 S 发生错误后的结果。

请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。

示例 1: 输入:nums = [1, 2, 2, 4] 输出:[2, 3]

示例 2: 输入:nums = [1, 1] 输出:[1, 2]

思路是生成1 - n个整数,记录每个数出现的次数,如果某个数出现两次,即是重复的数;如果某个数没有出现过,即是丢失的整数;

代码语言:javascript
复制
		int* findErrorNums(int* nums, int numsSize, int* returnSize)
		{
		    //定义一个hash数组,并初始化为0
		    int hash[10001] = { 0 };
		
		    //记录每个数字出现的次数
		    for (int i = 0; i < numsSize; i++)
		    {
		        hash[nums[i]]++;
		    }
		
		    //开辟返回数组,数组长度为2
		    int* ret = (int*)malloc(sizeof(int) * 2);
		    *returnSize = 2;
		
		    //如果hash[i] == 2,说明这一个数出现两次,即是我们要找的重复的数
		    //如果hash[i] == 0,说明这一个数没出现过,即是我们要找的丢失的数
		    for (int i = 1; i <= numsSize; i++)
		    {
		        if (hash[i] == 2)
		            ret[0] = i;
		
		        if (hash[i] == 0)
		            ret[1] = i;
		
		    }
		
		    //返回数组
		    return ret;
		}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Leetcode -643.子数组最大平均值Ⅰ
  • Leetcode -645.错误的集合
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档