【LeetCode】158。 Read4IIを指定してN文字を読み取る-複数回呼び出す



Leetcode 158 Read N Characters Given Read4 Ii Call Multiple Times



難易度:難しい

もっと: [ディレクトリ] LeetCodeJavaの実現

説明

質問に似ています[ Read4を指定してN文字を読み取る ]ですが、読み取り関数は複数回呼び出される場合があります。



直感

問題の意味 :このタイトルは前の質問とは異なり、read()関数を繰り返し呼び出しているため、4文字のキャッシュを保存する必要があります バッファ として定義 グローバル変数 さらに、グローバル変数は、バッファバッファ[]の開始インデックスと長さを定義する必要があります。この問題では、関数の後にread()の呼び出しが終了すると、読み取りをバッファリングする方法がない場合があることに注意する必要があります。それらはすべてなので、次のread()関数の呼び出しであるバッファーの操作を検討してください。コードを参照してください。

解決

public class Solution extends Reader4 { private char[] buffer = new char[4] int offset = 0, bufsize = 0 start buffer length and subscripts // buffer [] in /** * @param buf Destination buffer * @param n Maximum number of characters to read * @return The number of characters read */ public int read(char[] buf, int n) { int readBytes = 0 // read the number of characters boolean eof=false while(readBytes

私が学んだこと

1.1。



もっと: [ディレクトリ] LeetCodeJavaの実現