• Maximum Average Subarray


    Given an array with positive and negative numbers, find the maximum average subarray which length should be greater or equal to given length k.

    Example

    Given nums = [1, 12, -5, -6, 50, 3], k = 3

    Return 15.667 // (-6 + 50 + 3) / 3 = 15.667

    利用队列建立窗口

     1 public class Solution {
     2     /**
     3      * @param nums an array with positive and negative numbers
     4      * @param k an integer
     5      * @return the maximum average
     6      */
     7     public double maxAverage(int[] nums, int k) {
     8         // Write your code here
     9         if(k<=0||nums==null||nums.length==0) return 0;
    10         double average = Double.NEGATIVE_INFINITY;
    11         double sum = 0;
    12         Queue<Integer> queue = new LinkedList<Integer>();
    13         
    14         for(int i=0;i< nums.length;i++){
    15             if(i>=k){
    16                 int out = queue.poll();
    17                 sum-=out;
    18             }
    19             queue.offer(nums[i]);
    20             sum+=nums[i];
    21             if(i>=k-1){
    22                 average = Math.max(average, sum/k);
    23             }
    24         }
    25         
    26         return average;
    27     }
    28 }
  • 相关阅读:
    【iOS
    【iOS】Swift ESTabBarController的使用
    【iOS
    【iOS】图表实现-Charts(二)
    【iOS】图表实现-Charts(一)
    【iOS】图表实现-AAChartKit
    【iOS】图表实现-总述
    【iOS
    【iOS
    整理下开发中常用的第三方库
  • 原文地址:https://www.cnblogs.com/xinqiwm2010/p/6836017.html
Copyright © 2020-2023  润新知