原题链接:
https://leetcode.cn/problems/rle-iterator/
完成情况:
解题思路:
RLEIterator类定义了一个RLE(Run-Length Encoding)迭代器,用于解码经过RLE编码的整数序列。类中包含两个成员变量:encoding用于存储RLE编码后的整数序列,i表示当前迭代到的元素的下标,q表示当前元素的剩余数量。
构造函数RLEIterator接受一个整数数组encoding作为参数,将其赋值给成员变量encoding。
参考代码:
_900RLE迭代器
package leetcode板块;
public class _900RLE迭代器 {
/**
* 在偶数长度 encoding ( 从 0 开始 )的游程编码数组中,
* 对于所有偶数 i ,encoding[i] 告诉我们非负整数 encoding[i + 1] 在序列中重复的次数。
*/
class RLEIterator {
int encoding [];
int i,q;
/**
*
* @param encoding
*/
public RLEIterator(int[] encoding) {
this.encoding = encoding;
i = q = 0;
}
/**
*
* @param n
* @return
*/
public int next(int n) {
while (i < encoding.length){
if (q + n > encoding[i]){
n -= encoding[i] - q;
q = 0;
i+=2;
}else {
q+=n;
return encoding[i+1];
}
}
return -1;
}
}
}