You are viewing a single comment's thread. Return to all comments →
C++ deque solution
vector<int> solve(vector<int> arr, vector<int> queries) { vector<int> result; for(int i=0;i<queries.size();i++) { int k=queries[i]; vector<int> v; deque<int> dq; for(int i=0;i<k;i++) { while(dq.empty()!=true && arr[i]>arr[dq.back()]) dq.pop_back(); dq.push_back(i); } for(int i=k;i<arr.size();i++) { v.push_back(arr[dq.front()]); while(dq.empty()!=true && dq.front()<=i-k) dq.pop_front(); while(dq.empty()!=true && arr[i]>=arr[dq.back()]) dq.pop_back(); dq.push_back(i); } v.push_back(arr[dq.front()]); sort(v.begin(),v.end()); result.push_back(v[0]); } return result; }
Queries with Fixed Length
You are viewing a single comment's thread. Return to all comments →
C++ deque solution