当前位置:网站首页>Leetcode daily question (2090. K radius subarray averages)
Leetcode daily question (2090. K radius subarray averages)
2022-07-03 09:33: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
Maintain a queue , take nums The numbers in are put into the queue in turn , Always in the queue 2 * k + 1 Elements , In this way, every time you join the team, you leave the team , We can work it out avg[i-k-1], among i To point to nums The next element to join the team 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
}
}
边栏推荐
- [solution to the new version of Flink without bat startup file]
- Spark 结构化流写入Hudi 实践
- Banner - Summary of closed group meeting
- Failed building wheel for argon2 cffi when installing Jupiter
- 基于opencv实现桌面图标识别
- Hudi学习笔记(三) 核心概念剖析
- QT qstring:: number apply base conversion
- PIP configuring domestic sources
- Equality judgment of long type
- Win10 install elk
猜你喜欢

Hudi integrated spark data analysis example (including code flow and test results)

Hudi 快速体验使用(含操作详细步骤及截图)

Overview of image restoration methods -- paper notes

Vscode编辑器右键没有Open In Default Browser选项

Global KYC service provider advance AI in vivo detection products have passed ISO international safety certification, and the product capability has reached a new level
![Uncle Wang's blog directory [constantly updating]](/img/91/72cdea3eb3f61315595330d2c9016d.png)
Uncle Wang's blog directory [constantly updating]

解决Editor.md上传图片获取不到图片地址问题

Arduino handles JSON data, arduinojson assistant

Nodemcu-esp8266 development (vscode+platformio+arduino framework): Part 2 --blinker_ Hello_ WiFi (lighting technology - Mobile App control routine)
![[kotlin learning] classes, objects and interfaces - classes with non default construction methods or attributes, data classes and class delegates, object keywords](/img/ee/d982fd9e1f2283e09ad1a81d0b61b5.png)
[kotlin learning] classes, objects and interfaces - classes with non default construction methods or attributes, data classes and class delegates, object keywords
随机推荐
IDEA 中使用 Hudi
There is no open in default browser option in the right click of the vscade editor
LeetCode每日一题(931. Minimum Falling Path Sum)
文件系统中的目录与切换操作
Vscode编辑器右键没有Open In Default Browser选项
[point cloud processing paper crazy reading classic version 13] - adaptive graph revolutionary neural networks
Redis learning (I)
LeetCode每日一题(2090. K Radius Subarray Averages)
[set theory] order relation (eight special elements in partial order relation | ① maximum element | ② minimum element | ③ maximum element | ④ minimum element | ⑤ upper bound | ⑥ lower bound | ⑦ minimu
Go language - Reflection
Solve the problem of disordered code in vscode development, output Chinese and open source code
Spark 结构化流写入Hudi 实践
Flink学习笔记(十)Flink容错机制
[kotlin learning] classes, objects and interfaces - classes with non default construction methods or attributes, data classes and class delegates, object keywords
[point cloud processing paper crazy reading frontier version 11] - unsupervised point cloud pre training via occlusion completion
Apply for domain name binding IP to open port 80 record
Go language - IO project
【Kotlin学习】高阶函数的控制流——lambda的返回语句和匿名函数
Notes on numerical analysis (II): numerical solution of linear equations
Uncle Wang's blog directory [constantly updating]