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

阿里云盘惊现“一锅端“的 Bug,我刚充的钱啊!

题目描述

平台:LeetCode

题号:643

给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。

示例:

输入:[1,12,-5,-6,50,3], k = 4

输出:12.75

解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75

提示:

  • 所给数据范围

滑动窗口

这是一道道滑动窗口裸题。

以下代码,可以作为滑动窗口模板使用:

  1. 初始化将滑动窗口压满,取得第一个滑动窗口的目标值

  2. 继续滑动窗口,每往前滑动一次,需要删除一个和添加一个元素

Java 代码:

class Solution {
    public double findMaxAverage(int[] nums, int k) {
        double ans = 0, sum = 0;
        for (int i = 0; i < k; i++) sum += nums[i];
        ans = sum / k;
        for (int i = k; i < nums.length; i++) {
            sum = sum + nums[i] - nums[i - k]; // int add = nums[i], del = nums[i - k];
            ans = Math.max(ans, sum / k);
        }
        return ans;
    }
}

C++ 代码:

class Solution {
public:
    double findMaxAverage(vector<int>& nums, int k) {
        double ans = 0, sum = 0;
        for (int i = 0; i < k; i++) sum += nums[i];
        ans = sum / k;
        for (int i = k; i < nums.size(); i++) {
            sum = sum + nums[i] - nums[i - k];
            ans = max(ans, sum / k);
        }
        return ans;
    }
};

Python 代码:

class Solution:
    def findMaxAverage(self, nums: List[int], k: int) -> float:
        ans = 0
        sumv = sum(nums[:k])
        ans = sumv / k
        for i in range(k, len(nums)):
            sumv += nums[i] - nums[i - k]
            ans = max(ans, sumv / k)
        return ans

TypeScript 代码:

function findMaxAverage(nums: number[], k: number): number {
    let ans: number = 0, sum: number = 0;
    for (let i: number = 0; i < k; i++) sum += nums[i];
    ans = sum / k;
    for (let i: number = k; i < nums.length; i++) {
        sum = sum + nums[i] - nums[i - k];
        ans = Math.max(ans, sum / k);
    }
    return ans;
};
  • 时间复杂度:每个元素最多滑入和滑出窗口一次。复杂度为
  • 空间复杂度:

最后

巨划算的 LeetCode 会员优惠通道目前仍可用 ~

使用福利优惠通道 leetcode.cn/premium/?promoChannel=acoier,年度会员 有效期额外增加两个月,季度会员 有效期额外增加两周,更有超大额专属 🧧 和实物 🎁 福利每月发放。

我是宫水三叶,每天都会分享算法知识,并和大家聊聊近期的所见所闻

欢迎关注,明天见。

更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地 🎉🎉

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++笔记---继承(上)
  • 香港电讯SASE解决方案:终端与云端的安全护航
  • FloodFill(洪水灌溉)算法专题——DFS深搜篇
  • 【C#生态园】选择最适合你的工具:C# GUI库完整比较及指南
  • C++第二讲:类和对象
  • 从入门到精通,玩转Python的print函数(探索Python print函数的隐藏功能)
  • 实时数仓3.0DWD层
  • kali里面搭建docker容器
  • leetcode 难度【简单模式】标签【数据库】题型整理大全
  • 小红书热门系列,风口副业项目AI宠物壁纸号,玩法分享
  • Go语言入门实战教程(超详细)从零基础入门到高级实战,看完就懂了(2024年新版,建议收藏)
  • Python 课程15-PyTorch
  • 产品探秘|开物——面向AI原生和云原生网络研究的首选科研平台
  • 电脑的主板,内存条插多少合适?
  • SpringBoot入门(黑马)
  • 2019年如何成为全栈工程师?
  • CAP 一致性协议及应用解析
  • Centos6.8 使用rpm安装mysql5.7
  • express + mock 让前后台并行开发
  • Java 23种设计模式 之单例模式 7种实现方式
  • java2019面试题北京
  • JS+CSS实现数字滚动
  • leetcode46 Permutation 排列组合
  • 百度地图API标注+时间轴组件
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 构造函数(constructor)与原型链(prototype)关系
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 计算机常识 - 收藏集 - 掘金
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 使用docker-compose进行多节点部署
  • 使用Gradle第一次构建Java程序
  • 微信小程序实战练习(仿五洲到家微信版)
  • 学习HTTP相关知识笔记
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # windows 安装 mysql 显示 no packages found 解决方法
  • $L^p$ 调和函数恒为零
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (四)Controller接口控制器详解(三)
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .env.development、.env.production、.env.staging
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net Signalr 使用笔记
  • .net 提取注释生成API文档 帮助文档
  • .NET 中 GetProcess 相关方法的性能
  • .Net程序帮助文档制作
  • .net打印*三角形
  • .Net各种迷惑命名解释
  • @JsonFormat 和 @DateTimeFormat 的区别