[Leetcode] 643. Maximum Average Subarray I
643. Maximum Average Subarray I Given an array consisting of n integers, find the contiguous subarray of given length k that has the maximum average value. And you need to output the maximum average value. Example 1: Input: [1,12,-5,-6,50,3], k = 4 Output: 12.75 Explanation: Maximum average is (12-5-6+50)/4 = 51/4 = 12.75 Note: 1 <= k <= n <= 30,000. Elements of the given array will be in the range [-10,000, 10,000]. easy难度的,应该没啥弯弯绕。但是有一点,要问清楚每个数字大小,数组有多少数字。确保1. 每个数字不overflow了Max int 2. 他们的和不overflow了Max int 如果数字太大, 就要用string 求和的方法了。鉴于这道题是easy,题目给的note里就有限制了,所以这道题我们不用担心。 尝试了一格一格挪,每次取k个数加起来的最原始办法, 复杂度应该是nk果然超时了TLE。。。就在用这个原始方法的时候,也出了问题了,我在for循环里的limit是nums.length-k,实际上应该是nums.length-k+1. 然鹅,事实是这个样子滴,在我们单独讲循环某个数组的时候,limit应该是小于这个数组的长度,因为等于长度就读不出来数了,当从0开始算index的时候。 但是向这类的移动平均值呢,这个limit的物理意义是,我们要移动多少下。不举具体数字栗子,就干想我们有一个数组,长度是n,要取window长度为k的平均值。我们把长度为n的数组和长度为k的数组上下摞起来,多出来的就是n-k。但是!我们并不能设置limit为n-k,因为,这样我们就少移动了一次,最后一...