当前位置:网站首页>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
}
}
边栏推荐
- 从0开始使用pnpm构建一个Monorepo方式管理的demo
- Spark 集群安装与部署
- NPM install installation dependency package error reporting solution
- Nodemcu-esp8266 development (vscode+platformio+arduino framework): Part 2 --blinker_ Hello_ WiFi (lighting technology - Mobile App control routine)
- [CSDN]C1训练题解析_第三部分_JS基础
- 一款开源的Markdown转富文本编辑器的实现原理剖析
- [solution to the new version of Flink without bat startup file]
- Vscode Arduino installation Library
- Apply for domain name binding IP to open port 80 record
- IDEA 中使用 Hudi
猜你喜欢
LeetCode每日一题(1162. As Far from Land as Possible)
Flink学习笔记(八)多流转换
Analysis of the implementation principle of an open source markdown to rich text editor
PolyWorks script development learning notes (I) - script development environment
Flask+supervisor installation realizes background process resident
Apply for domain name binding IP to open port 80 record
Django operates Excel files through openpyxl to import data into the database in batches.
[set theory] order relation (eight special elements in partial order relation | ① maximum element | ② minimum element | ③ maximum element | ④ minimum element | ⑤ upper bound | ⑥ lower bound | ⑦ minimu
【Kotlin学习】类、对象和接口——带非默认构造方法或属性的类、数据类和类委托、object关键字
What do software test engineers do? Pass the technology to test whether there are loopholes in the software program
随机推荐
LeetCode每日一题(1162. As Far from Land as Possible)
LeetCode每日一题(2305. Fair Distribution of Cookies)
Crawler career from scratch (V): detailed explanation of re regular expression
Hudi quick experience (including detailed operation steps and screenshots)
[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
[set theory] order relation (chain | anti chain | chain and anti chain example | chain and anti chain theorem | chain and anti chain inference | good order relation)
Hudi integrated spark data analysis example (including code flow and test results)
Jestson Nano自定义根文件系统创建(支持NVIDIA图形库的最小根文件系统)
Overview of database system
Spark 概述
Construction and test of TFTP server under unbuntu (Debian)
Solve the problem of disordered code in vscode development, output Chinese and open source code
从0开始使用pnpm构建一个Monorepo方式管理的demo
Installation and uninstallation of pyenv
WARNING: You are using pip version 21.3.1; however, version 22.0.3 is available. Prompt to upgrade pip
QT qstring:: number apply base conversion
【Kotlin学习】运算符重载及其他约定——重载算术运算符、比较运算符、集合与区间的约定
Temper cattle ranking problem
Spark overview
Learning C language from scratch -- installation and configuration of 01 MinGW