摘要:题目链接和那道不同的是这次,问题就是当前的可能存在多读了几个字节,那么下一次的时候要先算上上次多读的部分,所以要保存上次读的。和读一次一样有两种要考虑的读完了没读完,但是装满了
158. Read N Characters Given Read4 II - Call multiple times
题目链接:https://leetcode.com/problems...
和那道read n不同的是这次call multiple times,问题就是当前的call可能存在多读了几个字节,那么下一次call read的时候要先算上上次多读的部分,所以要保存上次读的。和读一次一样有两种要考虑的case:
file读完了: read4(buf[]) == 0
file没读完,但是buf装满了read4(buf[]) > n - res
public class Solution extends Reader4 { /** * @param buf Destination buffer * @param n Maximum number of characters to read * @return The number of characters read */ char[] buff = new char[4]; int start = 0; int num = 0; public int read(char[] buf, int n) { int res = 0; while(res < n) { // no previous buff remain if(start == 0) num = read4(buff); // finish reading if(num == 0) break; // count the remain char to use for next call: start is the next start while(res < n && start < num) buf[res++] = buff[start++]; // clear start if read all: n - res >= num - start if(start == num) start = 0; } return res; } }157. Read N Characters Given Read4
public int read(char[] buf, int n) { int res = 0; char[] temp = new char[4]; while(res < n) { int cur = read4(temp); if(cur == 0) break; int num = Math.min(cur, n - res); for(int j = 0; j < num; j++) buf[res++] = temp[j]; } return res; }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/76407.html
Problem 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 i...
摘要:临时数组法复杂度时间空间思路用一个临时数组,存放每次读到字符,再用一个指针标记数组目前存储到的位置,然后将这个临时数组的内容存到相应的位置就行了。 Read N Characters Given Read4 I The API: int read4(char *buf) reads 4 characters at a time from a file. The return valu...
摘要:题目解答读懂题目很重要,还是要多写写这种实际的的问题。实际文件读到头了的情况需要读的文件个数达到了的情况 题目: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 exam...
摘要:一题目描述空格分隔,逐个反转二题目描述三题目描述当然也可以用的做,不过用双指针更快。 LeetCode: 557. Reverse Words in a String III 一、LeetCode: 557. Reverse Words in a String III 题目描述 Given a string, you need to reverse the order of chara...
Course Schedule Problem There are a total of n courses you have to take, labeled from 0 to n - 1. Some courses may have prerequisites, for example to take course 0 you have to first take course 1, whi...
阅读 1853·2019-08-29 16:44
阅读 2158·2019-08-29 16:30
阅读 768·2019-08-29 15:12
阅读 3515·2019-08-26 10:48
阅读 2647·2019-08-23 18:33
阅读 3761·2019-08-23 17:01
阅读 1924·2019-08-23 15:54
阅读 1289·2019-08-23 15:05