当前位置:网站首页>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
}
}
边栏推荐
- 1922. Count Good Numbers
- Database execution error: SQL_ mode only_ full_ group_ by:
- There is no open in default browser option in the right click of the vscade editor
- Jestson Nano 从tftp服务器下载更新kernel和dtb
- Using Hudi in idea
- Spark 概述
- 图像修复方法研究综述----论文笔记
- unbuntu(debian)下TFTP服务器搭建及测试
- QT qstring:: number apply base conversion
- 【Kotlin学习】类、对象和接口——定义类继承结构
猜你喜欢

Alibaba cloud notes for the first time

The rise and fall of mobile phones in my perspective these 10 years

Overview of image restoration methods -- paper notes

Navicat, MySQL export Er graph, er graph

【Kotlin学习】运算符重载及其他约定——重载算术运算符、比较运算符、集合与区间的约定

软件测试工程师是做什么的 通过技术测试软件程序中是否有漏洞

Flask+supervisor installation realizes background process resident

Flink学习笔记(九)状态编程

PolyWorks script development learning notes (II) -treeview basic operations

Detailed steps of windows installation redis
随机推荐
Powerdesign reverse wizard such as SQL and generates name and comment
Idea uses the MVN command to package and report an error, which is not available
Derivation of Fourier transform
[point cloud processing paper crazy reading cutting-edge version 12] - adaptive graph revolution for point cloud analysis
PIP configuring domestic sources
Liteide is easy to use
[point cloud processing paper crazy reading classic version 13] - adaptive graph revolutionary neural networks
[kotlin puzzle] what happens if you overload an arithmetic operator in the kotlin class and declare the operator as an extension function?
[point cloud processing paper crazy reading frontier edition 13] - gapnet: graph attention based point neural network for exploring local feature
[point cloud processing paper crazy reading frontier version 11] - unsupervised point cloud pre training via occlusion completion
LeetCode每日一题(2232. Minimize Result by Adding Parentheses to Expression)
Jetson nano custom boot icon kernel logo CBOOT logo
Leetcode daily question (968. binary tree cameras)
Modify idea code
Flink学习笔记(十一)Table API 和 SQL
Apply for domain name binding IP to open port 80 record
LeetCode每日一题(2212. Maximum Points in an Archery Competition)
Construction and test of TFTP server under unbuntu (Debian)
Spark structured stream writing Hudi practice
Crawler career from scratch (3): crawl the photos of my little sister ③ (the website has been disabled)