摘要:題目鏈接和那道不同的是這次,問題就是當前的可能存在多讀了幾個字節,那么下一次的時候要先算上上次多讀的部分,所以要保存上次讀的。和讀一次一樣有兩種要考慮的讀完了沒讀完,但是裝滿了
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;
}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.hztianpu.com/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...
閱讀 2045·2019-08-29 16:44
閱讀 2315·2019-08-29 16:30
閱讀 947·2019-08-29 15:12
閱讀 3707·2019-08-26 10:48
閱讀 2814·2019-08-23 18:33
閱讀 4020·2019-08-23 17:01
閱讀 2081·2019-08-23 15:54
閱讀 1485·2019-08-23 15:05