zoukankan      html  css  js  c++  java
  • 【LeetCode】157. Read N Characters Given Read4

    Difficulty: Easy

     More:【目录】LeetCode Java实现

    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.

    Intuition

    题意:int read4(char[] buffer):该函数功能是读取某个文件,每次读取最多4个字符到buffer中,同时返回读取字符个数。要求利用read4()函数来实现read(char[] buf, int n)函数,总共读取n个字符到buf中。

    要求很容易实现,每次用read4()来读取字符,用System.arraycopy(src, srcPos, dest, destPos, length)来复制数组即可。关键要注意的是文件的字符数小于n或者大于n的情况。

    Solution

    	public int read(char[] buf,int n) {
    		char[] buffer = new char[4];
    		int index=0;
    		boolean endOfFile=false;
    		while(index<n && !endOfFile) {
    			int size=read4(buffer);
    			if(size<4)
    				endOfFile=true;
    			int bytes=Math.min(size, n-index);
    			System.arraycopy(buffer, 0, buf, index, bytes);
    			index+=bytes;
    		}
    		return index;
    	}
    

      

    Complexity

    Time complexity : O(n)

    Space complexity :  O(1)

    What I've learned

    1.

     More:【目录】LeetCode Java实现

  • 相关阅读:
    mongo
    CSS常用属性
    nginx-proxy_cache缓存
    nginx防盗链
    oracle11g-centos部署
    VLAN高级特性
    路由
    网络摄像头分辨率
    前端开发调试线上代码的两款工具
    sql中 in , not in , exists , not exists效率分析
  • 原文地址:https://www.cnblogs.com/yongh/p/10116414.html
Copyright © 2011-2022 走看看