当前位置:网站首页>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
}
}
边栏推荐
- LeetCode每日一题(1162. As Far from Land as Possible)
- Spark 概述
- 【点云处理之论文狂读经典版12】—— FoldingNet: Point Cloud Auto-encoder via Deep Grid Deformation
- 【点云处理之论文狂读经典版13】—— Adaptive Graph Convolutional Neural Networks
- 2022-2-13 learn the imitation Niuke project - Project debugging skills
- Temper cattle ranking problem
- 【Kotlin学习】类、对象和接口——定义类继承结构
- Filter comments to filter out uncommented and default values
- 【点云处理之论文狂读经典版10】—— PointCNN: Convolution On X-Transformed Points
- 307. Range Sum Query - Mutable
猜你喜欢
Hudi 快速体验使用(含操作详细步骤及截图)
【点云处理之论文狂读前沿版11】—— Unsupervised Point Cloud Pre-training via Occlusion Completion
Modify idea code
Utilisation de hudi dans idea
Using Hudi in idea
[kotlin learning] control flow of higher-order functions -- lambda return statements and anonymous functions
【点云处理之论文狂读经典版14】—— Dynamic Graph CNN for Learning on Point Clouds
Excel is not as good as jnpf form for 3 minutes in an hour. Leaders must praise it when making reports like this!
【点云处理之论文狂读前沿版9】—Advanced Feature Learning on Point Clouds using Multi-resolution Features and Learni
AcWing 785. Quick sort (template)
随机推荐
[point cloud processing paper crazy reading cutting-edge version 12] - adaptive graph revolution for point cloud analysis
2022-2-13 learning xiangniuke project - version control
【点云处理之论文狂读前沿版10】—— MVTN: Multi-View Transformation Network for 3D Shape Recognition
Matlab dichotomy to find the optimal solution
[point cloud processing paper crazy reading classic version 9] - pointwise revolutionary neural networks
图像修复方法研究综述----论文笔记
[point cloud processing paper crazy reading classic version 12] - foldingnet: point cloud auto encoder via deep grid deformation
Flink学习笔记(十)Flink容错机制
Problems in the implementation of lenet
【Kotlin学习】运算符重载及其他约定——重载算术运算符、比较运算符、集合与区间的约定
【点云处理之论文狂读经典版10】—— PointCNN: Convolution On X-Transformed Points
【Kotlin学习】高阶函数的控制流——lambda的返回语句和匿名函数
ERROR: certificate common name “www.mysql.com” doesn’t match requested host name “137.254.60.11”.
【点云处理之论文狂读经典版8】—— O-CNN: Octree-based Convolutional Neural Networks for 3D Shape Analysis
Beego learning - JWT realizes user login and registration
Hudi 快速体验使用(含操作详细步骤及截图)
Common formulas of probability theory
[point cloud processing paper crazy reading classic version 14] - dynamic graph CNN for learning on point clouds
Django operates Excel files through openpyxl to import data into the database in batches.
Idea uses the MVN command to package and report an error, which is not available