当前位置:网站首页>LeetCode每日一题(2090. K Radius Subarray Averages)
LeetCode每日一题(2090. K Radius Subarray Averages)
2022-07-03 09:01:00 【wangjun861205】
You are given a 0-indexed array nums of n integers, and an integer k.
The k-radius average for a subarray of nums centered at some index i with the radius k is the average of all elements in nums between the indices i - k and i + k (inclusive). If there are less than k elements before or after the index i, then the k-radius average is -1.
Build and return an array avgs of length n where avgs[i] is the k-radius average for the subarray centered at index i.
The average of x elements is the sum of the x elements divided by x, using integer division. The integer division truncates toward zero, which means losing its fractional part.
For example, the average of four elements 2, 3, 1, and 5 is (2 + 3 + 1 + 5) / 4 = 11 / 4 = 2.75, which truncates to 2.
Example 1:

Input: nums = [7,4,3,9,1,8,5,2,6], k = 3
Output: [-1,-1,-1,5,4,4,-1,-1,-1]
Explanation:
- avg[0], avg[1], and avg[2] are -1 because there are less than k elements before each index.
- The sum of the subarray centered at index 3 with radius 3 is: 7 + 4 + 3 + 9 + 1 + 8 + 5 = 37.
Using integer division, avg[3] = 37 / 7 = 5. - For the subarray centered at index 4, avg[4] = (4 + 3 + 9 + 1 + 8 + 5 + 2) / 7 = 4.
- For the subarray centered at index 5, avg[5] = (3 + 9 + 1 + 8 + 5 + 2 + 6) / 7 = 4.
- avg[6], avg[7], and avg[8] are -1 because there are less than k elements after each index.
Example 2:
Input: nums = [100000], k = 0
Output: [100000]
Explanation:
- The sum of the subarray centered at index 0 with radius 0 is: 100000.
avg[0] = 100000 / 1 = 100000.
Example 3:
Input: nums = [8], k = 100000
Output: [-1]
Explanation:
- avg[0] is -1 because there are less than k elements before and after index 0.
Constraints:
- n == nums.length
- 1 <= n <= 105
- 0 <= nums[i], k <= 105
维持一个队列, 将 nums 中的数字依次放入队列中, 队列中始终保持着 2 * k + 1 个元素, 这样每次入队出队,我们就可以计算出 avg[i-k-1], 其中 i 为指向 nums 的下一个入队元素的 index
impl Solution {
pub fn get_averages(nums: Vec<i32>, k: i32) -> Vec<i32> {
let mut ans = vec![-1; nums.len()];
if (nums.len() as i32) < 2 * k + 1 {
return ans;
}
let mut i = 0;
let mut stack = Vec::new();
let mut sum = 0i64;
while i < 2 * k as usize + 1 {
let v = nums[i];
stack.push(v);
sum += v as i64;
i += 1;
}
ans[i - k as usize - 1] = (sum / stack.len() as i64) as i32;
while i < nums.len() {
stack.push(nums[i]);
sum += nums[i] as i64;
let p = stack.remove(0);
sum -= p as i64;
i += 1;
ans[i - k as usize - 1] = (sum / stack.len() as i64) as i32;
}
ans
}
}
边栏推荐
- 【点云处理之论文狂读前沿版8】—— Pointview-GCN: 3D Shape Classification With Multi-View Point Clouds
- [point cloud processing paper crazy reading frontier version 8] - pointview gcn: 3D shape classification with multi view point clouds
- STM32F103 can learning record
- 图像修复方法研究综述----论文笔记
- Numerical analysis notes (I): equation root
- 【Kotlin学习】类、对象和接口——带非默认构造方法或属性的类、数据类和类委托、object关键字
- Flink学习笔记(十)Flink容错机制
- 【点云处理之论文狂读经典版14】—— Dynamic Graph CNN for Learning on Point Clouds
- Build a solo blog from scratch
- Digital statistics DP acwing 338 Counting problem
猜你喜欢

【点云处理之论文狂读前沿版9】—Advanced Feature Learning on Point Clouds using Multi-resolution Features and Learni

2022-2-14 learning the imitation Niuke project - send email

Spark 概述

【Kotlin疑惑】在Kotlin类中重载一个算术运算符,并把该运算符声明为扩展函数会发生什么?

Flink学习笔记(十一)Table API 和 SQL

Hudi 集成 Spark 数据分析示例(含代码流程与测试结果)

We have a common name, XX Gong

Spark 集群安装与部署

npm install安装依赖包报错解决方法

IDEA 中使用 Hudi
随机推荐
Django operates Excel files through openpyxl to import data into the database in batches.
[graduation season | advanced technology Er] another graduation season, I change my career as soon as I graduate, from animal science to programmer. Programmers have something to say in 10 years
Go language - IO project
Banner - Summary of closed group meeting
图像修复方法研究综述----论文笔记
【点云处理之论文狂读前沿版10】—— MVTN: Multi-View Transformation Network for 3D Shape Recognition
Data mining 2021-4-27 class notes
Logstash+jdbc data synchronization +head display problems
Go language - Reflection
Spark 概述
Word segmentation in full-text indexing
Beego learning - Tencent cloud upload pictures
Uc/os self-study from 0
[point cloud processing paper crazy reading classic version 7] - dynamic edge conditioned filters in revolutionary neural networks on Graphs
Notes on numerical analysis (II): numerical solution of linear equations
PowerDesigner does not display table fields, only displays table names and references, which can be modified synchronously
AcWing 788. Number of pairs in reverse order
The server denied password root remote connection access
2022-2-14 learning the imitation Niuke project - send email
2022-2-13 learn the imitation Niuke project - Project debugging skills