leetcode 239: 滑动窗口最大值

并没有完成线性时间复杂度解决问题,最坏情况下的时间复杂度为O(n*k)

std::vector<int> maxSlidingWindow(std::vector<int>& nums, int k) {
    std::vector<int> a;
    if(nums.size()==0||k==0)
        return a;
    int max=nums[0];
    for(int i=i+1;i<k;i++){
        if(max<nums[i])
            max=nums[i];
    }
    for(int i=0;i<nums.size()-k+1;i++){
        if(nums[i+k-1]>max)
            max=nums[i+k-1];
        else {
            max = nums[i];
            for (int j = i + 1; j < i + k; j++) {
                if (max < nums[j])
                    max = nums[j];
            }
        }
        a.push_back(max);
    }
    return a;
}

猜你喜欢

转载自blog.csdn.net/u013263891/article/details/83716205