--- 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]] ``` -->