1、题目描述
2、解题思路
定义一个变量 tmp 表示调用 read4 读到的有效长度;
定义一个数组 bufTmp 用于装入 read4 读到的数据;
定义 length 表示已经 bufTmp 的数据有效长度;
1、循环调用 read4,直到读到的有效长度 tmp 为 0;
2、每次读取到的 read4 的有效数据装入 bufTmp 中,直到 length == n 为止(不包括 n ,因为索引从 0 开始)
3、解题代码
/**
* The read4 API is defined in the parent class Reader4.
* int read4(char[] buf);
*/
public class Solution extends Reader4 {
/**
* @param buf Destination buffer
* @param n Number of characters to read
* @return The number of actual characters read
*/
public int read(char[] buf, int n) {
int tmp;
int length = 0;
char[] bufTmp = new char[4];
while ((tmp = read4(bufTmp)) != 0) {
for (int i = 0; i < tmp && length < n; i++) {
buf[length] = bufTmp[i];
length++;
}
}
return length;
}
}