900. RLE 迭代器
900. RLE Iterator
class RLEIterator {
public:
deque<int> times, nums;
RLEIterator(vector<int>& A) {
for(int ii = 0; ii < A.size(); ii+=2) {
times.push_back(A[ii]);
nums.push_back(A[ii + 1]);
}
}
int next(int n) {
while(!times.empty() && times.front() < n) {
n -= times.front();
times.pop_front();
nums.pop_front();
}
if(times.empty()) return -1;
times.front() -= n;
return nums.front();
}
};
/**
* Your RLEIterator object will be instantiated and called as such:
* RLEIterator* obj = new RLEIterator(A);
* int param_1 = obj->next(n);
*/