Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

子数组最大平均数 I #107

Open
yankewei opened this issue Feb 4, 2021 · 1 comment
Open

子数组最大平均数 I #107

yankewei opened this issue Feb 4, 2021 · 1 comment
Labels
数组 题目类型为数组 滑动窗口 题目包含滑动窗口解法 简单 题目难度为简单

Comments

@yankewei
Copy link
Owner

yankewei commented Feb 4, 2021

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

示例:

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

提示:

  • 1 <= k <= n <= 30,000。
  • 所给数据范围 [-10,000,10,000]。

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

@yankewei yankewei added 简单 题目难度为简单 数组 题目类型为数组 滑动窗口 题目包含滑动窗口解法 labels Feb 4, 2021
@yankewei
Copy link
Owner Author

yankewei commented Feb 4, 2021

滑动窗口

挺简单的,没什么可说的,就是有一点,go语言进行浮点运算,需要把两个变量都转换成浮点数之后再运算

func findMaxAverage(nums []int, k int) float64 {
    var sum, ret int
    left,right := 0, k
    for i := left; i < right; i++ {
        sum += nums[i]
    }
    ret = sum
    for right < len(nums) {
        sum = sum - nums[left] + nums[right]
        if sum > ret {
            ret = sum
        }
        left++
        right++
    }
    return float64(ret)/float64(k)
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
数组 题目类型为数组 滑动窗口 题目包含滑动窗口解法 简单 题目难度为简单
Projects
None yet
Development

No branches or pull requests

1 participant