leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
1964.cpp (699B)
0 class Solution {
1 public:
2 vector<int> longestObstacleCourseAtEachPosition(vector<int> &obstacles) {
3 vector<int> res;
4 res.reserve(obstacles.size());
5 vector<int> mono;
6 mono.reserve(obstacles.size());
8 for (int o : obstacles) {
9 int left = 0, right = mono.size();
10 while (left < right) {
11 int mid = (left + right) / 2;
12 if (mono[mid] <= o)
13 left = mid + 1;
14 else
15 right = mid;
16 }
17 res.push_back(left + 1);
18 if (mono.size() == left) mono.push_back(o);
19 mono[left] = o;
20 }
22 return res;
23 }
24 };