---
tags: leetcode
---
# [900. RLE Iterator](https://leetcode.com/problems/rle-iterator/)
---
# My Solution
## The Key Idea for Solving This Coding Question
## C++ Code
```cpp=
class RLEIterator {
public:
RLEIterator(vector<int> &encoded) {
idx = 0;
this->encoded.resize(encoded.size());
for (int i = 0; i < encoded.size(); ++i) {
this->encoded[i] = encoded[i];
}
}
int next (int n) {
while (idx < encoded.size()) {
if (encoded[idx] > n) {
encoded[idx] -= n;
return encoded[idx + 1];
} else if (encoded[idx] == n) {
encoded[idx] = 0;
idx += 2;
return encoded[idx - 1];
} else {
// encoded[idx] < n
n -= encoded[idx];
encoded[idx] = 0;
idx += 2;
}
}
return -1;
}
private:
vector<int> encoded;
int idx;
};
/**
* Your RLEIterator object will be instantiated and called as such:
* RLEIterator* obj = new RLEIterator(encoding);
* int param_1 = obj->next(n);
*/
```
## Time Complexity
## Space Complexity
# Miscellaneous
<!--
# Test Cases
```
["RLEIterator", "next", "next", "next", "next"]
[[[3, 8, 0, 9, 2, 5]], [2], [1], [1], [2]]
```
* Time Limit Exceeded
```
["RLEIterator","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next"]
[[[923381016,843,898173122,924,540599925,391,705283400,275,811628709,850,895038968,590,949764874,580,450563107,660,996257840,917,793325084,82]],[612783106],[486444202],[630147341],[845077576],[243035623],[731489221],[117134294],[220460537],[794582972],[332536150],[815913097],[100607521],[146358489],[697670641],[45234068],[573866037],[519323635],[27431940],[16279485],[203970]]
```
* Runtime Error
```
["RLEIterator","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next","next"]
[[[635,606,576,391,370,981,36,21,961,185,124,210,801,937,22,426,101,260,221,647,350,180,504,39,101,989,199,358,732,839,919,169,673,967,58,676,846,342,250,597,442,174,472,410,569,509,311,357,838,251]],[5039],[62],[3640],[671],[67],[395],[262],[839],[74],[43],[42],[77],[13],[6],[3],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1]]
```
-->