LeetCode 2090. 半径为 k 的子数组平均值(滑窗)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给你一个下标从 0 开始的数组 nums ,数组中有 n 个整数,另给你一个整数 k 。

半径为 k 的子数组平均值 是指:nums 中一个以下标 i 为 中心 且 半径 为 k 的子数组中所有元素的平均值,即下标在 i - k 和 i + k 范围(含 i - k 和 i + k)内所有元素的平均值。
如果在下标 i 前或后不足 k 个元素,那么 半径为 k 的子数组平均值 是 -1 。

构建并返回一个长度为 n 的数组 avgs ,其中 avgs[i] 是以下标 i 为中心的子数组的 半径为 k 的子数组平均值 。

x 个元素的 平均值 是 x 个元素相加之和除以 x ,此时使用截断式 整数除法 ,即需要去掉结果的小数部分。

例如,四个元素 2、3、1 和 5 的平均值是 (2 + 3 + 1 + 5) / 4 = 11 / 4 = 3.75,截断后得到 3 。

示例 1:
在这里插入图片描述

输入:nums = [7,4,3,9,1,8,5,2,6], k = 3
输出:[-1,-1,-1,5,4,4,-1,-1,-1]
解释:
- avg[0]、avg[1] 和 avg[2]-1 ,因为在这几个下标前的元素数量都不足 k 个。
- 中心为下标 3 且半径为 3 的子数组的元素总和是:7 + 4 + 3 + 9 + 1 + 8 + 5 = 37 。使用截断式 整数除法,avg[3] = 37 / 7 = 5- 中心为下标 4 的子数组,avg[4] = (4 + 3 + 9 + 1 + 8 + 5 + 2) / 7 = 4- 中心为下标 5 的子数组,avg[5] = (3 + 9 + 1 + 8 + 5 + 2 + 6) / 7 = 4- avg[6]、avg[7] 和 avg[8]-1 ,因为在这几个下标后的元素数量都不足 k 个。示例 2:
输入:nums = [100000], k = 0
输出:[100000]
解释:
- 中心为下标 0 且半径 0 的子数组的元素总和是:100000 。avg[0] = 100000 / 1 = 100000 。示例 3:
输入:nums = [8], k = 100000
输出:[-1]
解释:
- avg[0]-1 ,因为在下标 0 前后的元素数量均不足 k 。 提示:
n == nums.length
1 <= n <= 10^5
0 <= nums[i], k <= 10^5

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/k-radius-subarray-averages
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {
public:vector<int> getAverages(vector<int>& nums, int k) {long long n = nums.size(), sum = 0, idx = k;vector<int> avg(n, -1);for(int i = 0; i < min(2LL*k, n); ++i)sum += nums[i]; // 前2k个数字的和for(int i = 2*k; i < n; ++i){sum += nums[i];//加上进入窗口的avg[idx++] = sum/(2*k+1);sum -= nums[i-2*k];//左端要退出窗口的,减去}return avg;}
};

156 ms 126.5 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大龄屌丝自学笔记--Java零基础到菜鸟--036

GUI&#xff1a;继承体系、事件监听机制、适配器模型、Netbeans 1、继承体系 2、事件监听机制 事件源--事件定义&#xff08;接口&#xff09;--事件处理&#xff08;实现类&#xff09;--事件监听 3、适配器模型 接口&#xff08;很多方法&#xff09;--抽象适配器类&#xff…

LeetCode 2091. 从数组中移除最大值和最小值(一次遍历)

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的数组 nums &#xff0c;数组由若干 互不相同 的整数组成。 nums 中有一个值最小的元素和一个值最大的元素。分别称为 最小值 和 最大值 。你的目标是从数组中移除这两个元素。 一次 删除 操作定义为从数组的 前面 移除…

php怎么获取分类数,php 两种获取分类树的方法

php 两种获取分类树的方法1./*** 获取分类树* param array $array 数据源* param int $pid 父级ID* param int $level 分类级别* return string*/function getCategory($array, $pid 0, $level 0){//声明静态数组,避免递归调用时,多次声明导致数组覆盖static $list [];foreac…

Java中正数与负数操作、的区别

以下为个人理解&#xff0c;有不对的地方请提出 Java中&#xff0c;>>、>>>都是在数字的二进制的补码中进行的 正数的补码为本身 如33的二进制表示为 00000000 00000000 00000000 00100001 补码为 00000000 00000000 00000000 00100001 负数的补码为符号位即最高…

LeetCode 2092. 找出知晓秘密的所有专家(并查集)

文章目录1. 题目2. 解题1. 题目 给你一个整数 n &#xff0c;表示有 n 个专家从 0 到 n - 1 编号。 另外给你一个下标从 0 开始的二维整数数组 meetings &#xff0c;其中 meetings[i] [xi, yi, timei] 表示专家 xi 和专家 yi 在时间 timei 要开一场会。 一个专家可以同时参加…

Core Data系列三——基本使用

本文分两个部分&#xff0c;第一部分为使用Xcode IDE来建立data model以及nsmanagedobject subclass, 第二部分为代码中对数据库进行CURD的操作 Xcode操作步骤 创建Data Model: New File->iOS->Core Data->Data Model 建立entity建立entity的attribute建立entity之间的…

matlab仿真模拟随机过程,基于MATLAB的随机过程仿真.pdf

基于MATLAB的随机过程仿真.pdf< YSPRACTICE 系统实践基于MATLAB的随机过程仿真◆陈建华 彭淑燕 王 伟 李海燕摘要&#xff1a;为了改善随机过程课程教学中存在的数学概念抽象难懂&#xff0c;学生理解不透彻的情况&#xff0c;将基于MATLAB的随机过程仿真引入到教学中。根据…

python web开发 HTML基础

文章目录1. 简介2. 标签元素属性3. 表格4. 列表ol 有序ul 无序自定义列表5. 表单输入域标记 input选择域标记 select, option文字域标记 textarea6. 综合练习learning from 《python web开发从入门到精通》 1. 简介 HTML 是描述网页的一种标记语言&#xff0c;Hyper Text Mar…

php程序设计案例教程 程序题,PHP程序设计案例教程

目录第1章PHP概述与运行环境搭建11.1PHP入门11.1.1PHP的发展史21.1.2PHP的优点31.1.3PHP的运行机制41.2PHP扩展库51.2.1标准扩展库51.2.2外部扩展库61.3Web服务器61.3.1Apache服务器61.3.2IIS服务器71.4PHP运行环境的搭建71.5综合案例——创建第一个PHP程序10目录第1章PHP概述与…

美团大众点评合并:背后技术力量的对比回顾

美团网和大众点评网在10月8日中午联合发布声明&#xff0c;宣布达成战略合作&#xff0c;两者将共同成立一家新公司。两者也在InfoQ及其组织的大会上进行过多次分享&#xff0c;我们将对美团和大众点评使用的技术进行回顾&#xff0c;来看看这两家电商巨头的技术实力。 美团和大…

python web开发 CSS基础

文章目录1. 基础知识2. ID&#xff0c;Class 选择器3. CSS盒子模型4. 嵌入CSS样式4.1 内联样式表4.2 内部样式表4.3 外部样式表learning from 《python web开发从入门到精通》 1. 基础知识 CSS &#xff0c;Cascading Style Sheet 层叠样式表&#xff0c;标记语言&#xff0c…

php fpm 统计,php实现fpm开启状态统计的方法

这篇文章主要给大家介绍了php-fpm开启状态统计的方法&#xff0c;文中介绍的非常详细&#xff0c;对大家具有一定的参考学习价值&#xff0c;需要的朋友们下面来一起看看吧。本文主要给大家介绍了关于php-fpm开启状态统计的相关内容&#xff0c;分享出来供大家参考学习&#xf…

shell脚本判断文件类型

转自&#xff1a;http://www.cnblogs.com/sunyubo/archive/2011/10/17/2282047.html 1. shell判断文件,目录是否存在或者具有权限 2. #!/bin/sh 3. 4. myPath"/var/log/httpd/" 5. myFile"/var /log/httpd/access.log" 6. 7. # 这里的-x 参数判断$myPath是…

python web开发 JavaScript基础

文章目录1. script 标签2. 字面量、变量3. 数据类型4. 运算符5. if 条件6. switch分支7. for循环8. while循环9. break&#xff0c; continue10. 函数11. JS事件12. 引入JS的两种方式12.1 HTML页面嵌入12.2 引入外部JS文件learning from 《python web开发从入门到精通》 JavaS…

php中括号的优先级是不是最高的,理解php中操作符的优先级和结合性

一般地说&#xff0c;操作符具有一组优先级&#xff0c;也就是执行他们的顺序。操作符还具有结合性&#xff0c;也就是同一优先级的操作符的执行顺序。这种顺序通常有从左到右(简称左)、从右到左(简称右)或者不相关。下表中给出的是php中的操作符和相关性简表&#xff0c;他们出…

Txt格式配置表无法解析的问题——BOM

今天再次遇到同一个问题&#xff1a;策划给来一个Txt格式配置表&#xff0c;我用解析类去读取&#xff0c;返回的结果为空。解析类参数是&#xff1a;主键key&#xff0c;文件名fileName&#xff0c;错误提示errorTip。 写读取语句的时候&#xff0c;主键key我是直接从txt文件中…

python web开发 jQuery基础

文章目录1. 引入 jQuery2. 基本语法3. jQuery 选择器3.1 元素选择器3.2 #id 选择器3.3 .class 选择器4. jQuery事件5. 获取内容和属性5.1 获取内容5.2 获取属性learning from 《python web开发从入门到精通》 jQuery 是一个轻量级的 JavaScript 函数库包含 元素选取&#xff0…

PHP动态验证,php-动态更改验证规则

我正在处理包含用户数据,特别是电话号码字段的表单.通常不需要电话号码,因此模型中唯一的验证规则是usphone规则.但是,如果用户正在提交此表格,则电话号码变得必不可少.我以为我可以在运行中简单地添加验证规则,设置模型并调用validates方法,但是我做错了或者没有按我预期的方式…

Html5 各属性详解

Div 这个标签是我们见得最多、用得最多的一个标签。本身没有任何语义&#xff0c;用作布局以及样式化或脚本的钩子(hook)。 Section section 应用的典型场景有文章的章节、标签对话框中的标签页、或者论文中有编号的部分。一个网站的主页可以分成简介、新闻和联系信息等几部分。…

python web开发 Bootstrap框架基础

文章目录1. 安装2. Bootstrap 5 基本应用learning from 《python web开发从入门到精通》 Bootstrap 是最受欢迎的 前端组件库&#xff0c;用于 HTML&#xff0c;CSS&#xff0c;JavaScript 开发的 开源工具集 1. 安装 使用 CDN 引用 <link href"https://cdn.jsdeli…