Read N Characters Given Read4
https://leetcode.com/problems/read-n-characters-given-read4/description/
The API: int read4(char *buf) reads 4 characters at a time from a file.
The return value is the actual number of characters read. For example, it returns 3 if there is only 3 characters left in the file.
By using the read4 API, implement the function int read(char *buf, int n) that reads n characters from the file.
Note:
The read function will only be called once for each test case.
Thoughts
题目意思是给一个read4(char[] inBuffer)函数, 它能从某处读入4个字符写入到inBuffer里, 现在让你调用read4, 实现一个general的read(int[] buf, n)的函数, 即读入n个字符进buf里. 那我们首先需要一个internal buffer来接read4的写入, 然后设当前遍历到的位置为index, 调用read4()每次读入4个进inBuffer中, 再把buf[index]不断写入inBuffer中还没写入到buf中的. 直到read4返回0即没有可读或index == n.
Code
Analysis
时间复杂度O(N).
Last updated
Was this helpful?