leetcode644. Maximum Average Subarray II

题意:

给定由n个整数组成的数组,找到长度大于或等于k的连续子阵列,其具有最大平均值。您需要输出最大平均值。

思路:

先计算前k个的avg和sum,然后每次往后加一个数,每次加一个数的同时用一个tempsum( = sum)依次减少前置的数,以此来模拟区间向后移动的计算。与直接的暴力相比,少了向后加又前减的一些步骤,减少了许多重复计算,但是这应该不是最优的算法,更快的算法暂时还没想到。

ac代码:

C++

class Solution {
public:
double findMaxAverage(vector<int>& nums, int k) {
double maxavg = 0;
double sum = 0;
int len = k;
for(int i = 0; i < k; i++)
{
sum += nums[i];
}
maxavg = sum/k;
double avg = maxavg; for(int i = k; i < nums.size(); i++)
{
len++;
sum += nums[i];
avg = sum/len; double tempsum = sum;
double tempavg = avg;
for(int j = len - 1; j >= k; j--)
{
tempsum -= nums[i - j];
tempavg = tempsum / j;
if(tempavg >= avg)
{
avg = tempavg;
sum = tempsum;
len = j;
}
}
if(avg > maxavg)
maxavg = avg;
}
return maxavg;
}
};

python


leetcode644. Maximum Average Subarray II的更多相关文章

  1. [LeetCode] Maximum Average Subarray II 子数组的最大平均值之二

    Given an array consisting of n integers, find the contiguous subarray whose length is greater than o ...

  2. Maximum Average Subarray II LT644

    Given an array consisting of n integers, find the contiguous subarray whose length is greater than o ...

  3. [LeetCode] 644. Maximum Average Subarray II 子数组的最大平均值之二

    Given an array consisting of n integers, find the contiguous subarray whose length is greater than o ...

  4. Maximum Average Subarray II

    Description Given an array with positive and negative numbers, find the maximum average subarray whi ...

  5. LC 644. Maximum Average Subarray II 【lock,hard】

    Given an array consisting of n integers, find the contiguous subarray whose length is greater than o ...

  6. 643. Maximum Average Subarray I 最大子数组的平均值

    [抄题]: Given an array consisting of n integers, find the contiguous subarray of given length k that h ...

  7. LeetCode 643. 子数组最大平均数 I(Maximum Average Subarray I)

    643. 子数组最大平均数 I 643. Maximum Average Subarray I 题目描述 给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数. LeetCo ...

  8. Maximum Average Subarray

    Given an array with positive and negative numbers, find the maximum average subarray which length sh ...

  9. 【Leetcode_easy】643. Maximum Average Subarray I

    problem 643. Maximum Average Subarray I 题意:一定长度的子数组的最大平均值. solution1:计算子数组之后的常用方法是建立累加数组,然后再计算任意一定长度 ...

随机推荐

  1. makefile使用.lds链接脚本以及 $@ ,$^, $,< 解析【转】

    转自:http://www.cnblogs.com/lifexy/p/7089873.html 先来分析一个简单的.lds链接脚本 例1,假如现在有head.c init.c nand.c main. ...

  2. JavaSE项目之员工收录系统

    在Java SE中,对IO流与集合的操作在应用中比较重要.接下来,我以一个小型项目的形式,演示IO流.集合等知识点在实践中的运用. 该项目名称为“员工收录系统”,主要是通过输入员工的id.姓名信息,实 ...

  3. GPS位置模拟-安卓

    测试定位功能时都需要位置模拟,一般有如下3种方式: a)手机上安装第三方模拟软件:需要Root: b)PC模拟其中运行app并模拟位置:不能在真机上运行,手机兼容性不能测试到: b)在app中让开发增 ...

  4. 【转载】python import和from import

    import和from import都是将其他模块导入当前模块中. 刚开始一直以为import和from import唯一的区别,就是from import可以少写一些模块名.虽然from XX im ...

  5. plsPlugin

    init: 监控目录变化(增删) 监控jar变化,load

  6. 百度地图sdk定位和遇到的坑

    封装定位服务类: import android.content.Context; import com.baidu.location.BDAbstractLocationListener; impor ...

  7. opencv3.10加入OPENCV_contrib模块

    在VS2015+opencv3.1进行算法研究时,遇到了一些模块在官网下载的里面是没有的,需要自己进行编译,参考以下链接 http://blog.csdn.net/liu798675179/artic ...

  8. 谷歌翻译python接口

    项目地址:  https://github.com/ssut/py-googletrans 安装: sudo pip install googletrans 使用: #!/usr/bin/python ...

  9. [实战]MVC5+EF6+MySql企业网盘实战(15)——逻辑重构2

    写在前面 上篇文章修改文件上传的逻辑,这篇修改下文件下载的逻辑. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySql企业网盘实战(1) [实 ...

  10. Java Switch Statement

    Java Switch Java Switch Statement switch语句的执行规则如下     1.从第一个case开始判断,不匹配则跳到下一个case继续判断:     2.遇到brea ...