题:https://leetcode.com/problems/rle-iterator/
题目大意
参考原题
思路
这里用 remainder 记录 未跨过 一个元素。
且当 n > Arr[p] 时,p才会跨过一个元素。
若 n == Arr[p] 时候,不跨过 一个元素。用 remainder 记录 n。
class RLEIterator {
int[] Arr;
int p;
int remainder;
public RLEIterator(int[] A) {
Arr = A;
p = 0;
remainder = 0;
}
public int next(int n) {
n += remainder;
while(p < Arr.length && n>Arr[p] ){
n =n - Arr[p];
p +=2;
}
if(p>=Arr.length)
return -1;
remainder = n;
return Arr[p+1];
}
}
/**
* Your RLEIterator object will be instantiated and called as such:
* RLEIterator obj = new RLEIterator(A);
* int param_1 = obj.next(n);
*/