Maximum Average Subarray I(C++子數組最大平均數 I)

解題思路:

(1)先求出初始k個值的總和,最爲初始的最大值

(2)使用兩個指針,一個保持當前的窗口中k個數的總和sum

(3)一個用來記錄當前所有窗口中的最大值max,判斷更新

class Solution {
public:
    double findMaxAverage(vector<int>& nums, int k) {
        int max = 0,temp;
        for(int i=0;i<k;i++) max+=nums[i];
        int sum = max;
        for(int i=k;i<nums.size();i++) {
            temp = sum+nums[i]-nums[i-k];
            if(temp>max) max = temp;
            sum = temp;
        }
        return max/(double)k;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章