首页 > 其他分享 >643. 子数组最大平均数 I

643. 子数组最大平均数 I

时间:2023-04-28 11:15:23浏览次数:37  
标签:right nums int 平均数 sum 643 数组 max

给你一个由 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
 

提示:

n == nums.length
1 <= k <= n <= 105
-104 <= nums[i] <= 104

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/maximum-average-subarray-i
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


 

滑动窗口即可。

需要注意的是,

1. 由于除法开销比较大,所以不应该每次直接更新答案的值,而应该记录最大值,最后再得到答案。

2. Java 两整数相除是去掉了尾数。需要进行类型转换后再除。

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

 

标签:right,nums,int,平均数,sum,643,数组,max
From: https://www.cnblogs.com/allWu/p/17361531.html

相关文章

  • c语言中,字符数组名 与 指向字符串常量的指针之间的关系
    chara[]="hello";//定义一个字符数组a,constchar*b="hello";//定义一个指向字符的指针b,指向字符串常量的第一个字符的首地址区别:a是一个指针常量,它本身的值不能修改,即char*consta;b是一个常量指针,它所指向的值不能修改,constchar*b;......
  • 【二分查找】LeetCode 153. 寻找旋转排序数组中的最小值
    题目链接153.寻找旋转排序数组中的最小值思路首先分析一下旋转数组可能有的状态:左<中<右,此时最小值肯定在左边,应当收缩右边界左<中,中>右,此时最小值肯定在右半段,应当收缩左边界左>中,中<右,此时最小值肯定在左半段,应当收缩右边界分析这三种状态可以发现,中值小......
  • 【LeetCode动态规划#14】子序列系列题(最长递增子序列、最长连续递增序列、最长重复子
    最长递增子序列力扣题目链接(opensnewwindow)给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例1:输入:nums=[10,9,2,5,3,7......
  • 越界访问数组进行赋值时,导致陷入死循环
    >选自《C语言陷阱与缺陷》#include<stdio.h>intmain(){  inti=0;  intarr[]={1,2,3,4,5,6,7,8,9,10};  for(i=0;i<=12;i++)  {    arr[i]=0;    printf("helloworld\n");  }  return0;}在vs、x86、C语言环境下运行这串代码......
  • 2、数组问题最常见
    1、二分查找法二分查找法(Java实现)template<typenameT>intbinarySearch1(Tarr[],intn,Ttarget){//在[l...r]的范围里寻找targetintl=0;intr=n-1;intmid;//当l==r时,区间[l...r]依然是有效的while(l<=r)......
  • 压缩数组
    443:双指针短除法:while(num>0){char[i]='0'+num%10;num/=10;}要与之后的字符串进行比较,因为之后的字符串才是没有被改动过。所以:chars[i]==cahrs[i+1]因为与之后的字符串比较,所以要从0开始。如果字符串出现不等,就将字符串记录入原字符串,再将哨兵后移;继续输入长度num如原......
  • JS 数组 group by 分组
    扩展数组方法Array.prototype.groupBy=functiongroupBy(key){  consthash={},    result=[];  for(constelofthis){    if(hash[el[key]]){      hash[el[key]].push(el);    }else{      r......
  • Gson 对对象下的数组进行转换
    现有一个json数据{"result":[{"powerUnitId":1,"powerUnitName":"供电单位1"},{"powerUnitId":2,"p......
  • asp.net 绑定数组数据到下拉列表,绑定数组到DropDownList,数据绑定
    前台代码:<asp:DropDownListID="ddlHPZL"runat="server"Width="130px"></asp:DropDownList>后台代码:#region绑定号牌号码string[]iniHPHM=newstring[];iniHPHM=["辽P,京A,京B,吉C,黑D,云E,蒙F,"]......
  • 1 数组和切片、2 可变长参数 、3 maps
    目录1数组和切片1.1数组1.2切片2可变长参数3maps1数组和切片1.1数组#1定义,初始化,使用#2数组是值类型 -数字,字符串,布尔,数组,都是值类型,真正直接存数据-切片,map,指针引用类型,是个地址,指向了具体的值#3数组长度#4循环打印数组#5多纬数组#6数组......