解題思路
看 neetcode 的方法來解這題。
btw 問了 chatGPT 發現我寫的程式碼還是太醜了XD
程式碼
class Solution { public: vector<int> maxSlidingWindow(vector<int>& nums, int k) { deque<int> dq; vector<int> ans; for(int i=0; i<k; i++) { while(!dq.empty() && nums[i] > dq.back()) dq.pop_back(); dq.push_back(nums[i]); } ans.push_back(dq.front()); for(int i=1; i<(nums.size() - k + 1); i++) { if(dq.front() == nums[i-1]) { dq.pop_front(); } while(!dq.empty() && nums[i+k-1] > dq.back()) dq.pop_back(); dq.push_back(nums[i+k-1]); ans.push_back(dq.front()); } return ans; } };
沒有留言:
張貼留言