LeetCode #239

Sliding Window Maximum

1개의 풀이 · C++

문제 원문 보기 ↗

SOLUTION INFO

C++ · main.cpp

main.cpp
class Solution {
public:
    vector<int> maxSlidingWindow(vector<int>& nums, int k) {
        deque<pair<int, int>> dq;
        vector<int> ans((int)nums.size()-k+1);
        for(int i = 0; i < (int)nums.size(); ++i) {
            while(!dq.empty()&&dq.back().first<nums[i])dq.pop_back();
            dq.emplace_back(nums[i],i);
            while(dq.front().second<=i-k)dq.pop_front();
            if(i + 1 >= k) ans[i-k+1] = dq.front().first;
        }
        return ans;
    }
};

SOLUTION DESCRIPTION

풀이 설명

등록된 풀이 설명이 없습니다.