当前位置: 首页 > news >正文

LeetCode 2090.半径为K的子数组平均值

题目

给你一个下标从 0 开始的数组 nums ,数组中有 n 个整数,另给你一个整数 k 。

半径为 k 的子数组平均值 是指:nums 中一个以下标 i 为 中心 且 半径 为 k 的子数组中所有元素的平均值,即下标在 i - k 和 i + k 范围( i - k 和 i + k)内所有元素的平均值。如果在下标 i 前或后不足 k 个元素,那么 半径为 k 的子数组平均值 是 -1 。

构建并返回一个长度为 n 的数组 avgs ,其中 avgs[i] 是以下标 i 为中心的子数组的 半径为 k 的子数组平均值 

x 个元素的 平均值 是 x 个元素相加之和除以 x ,此时使用截断式 整数除法 ,即需要去掉结果的小数部分。

  • 例如,四个元素 231 和 5 的平均值是 (2 + 3 + 1 + 5) / 4 = 11 / 4 = 2.75,截断后得到 2 。

思路:定长滑动窗口  入  更新  出

代码

class Solution {public int[] getAverages(int[] nums, int k) {int n = nums.length;int[] ans = new int[n];long sum = 0;  // 防止溢出if (n < 2 * k + 1) {java.util.Arrays.fill(ans, -1);return ans;}for (int i = 0; i < n; i++) {if (i < k || i > n - 1 - k)ans[i] = -1;sum += nums[i];if (i < 2 * k )continue;ans[i - k] = (int) (sum / (2 * k + 1));sum -= nums[i - 2 * k];}return ans;}
}

性能

时间复杂度o(n)

空间复杂度o(1)

http://www.lryc.cn/news/464369.html

相关文章:

  • Qt C++ 编程中定义了一个槽函数(slot)deleteLater的作用
  • 【Hive】8-Hive性能优化及Hive3新特性
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18
  • CTF(四)
  • 智慧商城项目1-项目初始化创建
  • Java集合(四)--treeset/treemap/章节练习题目/去重原理的解读和应用
  • 如何开启华为交换机 http
  • SpringBoot中的RedisTemplate对象中的setIfAbsent()方法有什么作用?
  • 《合肥工业大学学报(自然科学版)》
  • Android11 USB Camera会出现预览绿屏问题
  • Mongodb 获取集合(collection)的统计信息
  • Java中的集合(1)——List、Map和Set
  • MySQL8.0主从同步报ERROR 13121错误解决方法
  • 【论文阅读】03-Diffusion Models and Representation Learning: A Survey
  • 【深度学习】RNN的简单实现
  • 每次请求时,检查 JWT Token的有效期并决定是否需要刷新
  • AI大模型开发架构设计(13)——LLM大模型的向量数据库应用实战
  • WPF中Grid、StackPanel、Canvas、WrapPanel常用属性
  • 【芙丽芳丝净润洗面霜和雅漾舒护活泉喷雾
  • ubuntu更新Cmake
  • CMOS晶体管的串联与并联
  • 从IT高管到看门大爷:53岁我的职场华丽转身
  • Redis入门到精通(三):入门Redis看这一篇就够了
  • IP基本原理
  • 数据分析题面试题系列2
  • uniapp 单表、多级动态表单添加validateFunction自定义规则
  • FPGA高端图像处理培训第一期,提供工程源码+视频教程+FPGA开发板
  • 顺序表的实现(数据结构)——C语言
  • 【VUE】Vue中 computed计算属性和watch侦听器的区别
  • linux线程 | 同步与互斥 | 深度学习与理解同步