zoukankan      html  css  js  c++  java
  • 简单的滑动窗口 643. 子数组最大平均数 I

    给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。

    请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。

    任何误差小于 10-5 的答案都将被视为正确答案。

    示例 1:

    输入:nums = [1,12,-5,-6,50,3], k = 4
    输出:12.75
    解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75
    示例 2:

    输入:nums = [5], k = 1
    输出:5.00000

     1 class Solution {
     2 public:
     3     // double findMaxAverage(vector<int>& nums, int k) {
     4     //     double res = -10000.0;
     5     //     double sum = 0;
     6     //     double ave;
     7     //     for(int i = 0; i<=nums.size()-k; i++){
     8     //         if( i == 0){
     9     //             for(int j = 0; j<k; j++){
    10     //                 sum+=nums[i+j];
    11     //             }
    12     //         }else{
    13     //             sum-=nums[i-1];
    14     //             sum+=nums[i+k-1];
    15     //         }
    16     //         ave = sum/k;
    17     //         cout <<ave<<endl;
    18     //         res = res>ave?res:ave;
    19     //     }
    20     //     return res;
    21     // }
    22     double findMaxAverage(vector<int>& nums, int k) {
    23         int sum = 0;
    24         int n = nums.size();
    25         for (int i = 0; i < k; i++) {
    26             sum += nums[i];
    27         }
    28         int maxSum = sum;
    29         for (int i = k; i < n; i++) {
    30             sum = sum - nums[i - k] + nums[i];
    31             maxSum = max(maxSum, sum);
    32         }
    33         return static_cast<double>(maxSum) / k;
    34     }
    35 
    36 };
  • 相关阅读:
    冒泡排序
    选择排序
    1069 微博转发抽奖 (20 分)
    动态规划-石子合并
    动态规划-最长公共子序列
    动态规划-最长上升子序列
    动态规划-数字三角形
    动态规划-分组背包问题
    动态规划-多重背包问题
    动态规划-完全背包问题
  • 原文地址:https://www.cnblogs.com/qianxunslimg/p/15631256.html
Copyright © 2011-2022 走看看