业务类题目
用 Read4 读取 N 个字符
/**
* The read4 API is defined in the parent class Reader4.
* int read4(char *buf4);
*/
class Solution {
public:
/**
* @param buf Destination buffer
* @param n Number of characters to read
* @return The number of actual characters read
*/
int read(char *buf, int n) {
int ans=0;
int readL;
int i=0;
while(i<n){
readL=read4(buf);
if(readL==0)break;
if(readL+i>=n){
ans=n;
buf+=(n-i-1);
break;
}
ans+=readL;
buf+=readL;
i+=readL;
}
return ans;
}
};
买苹果
贪心
import java.util.Scanner;
public class Main {
public static int process(int n) {
if(n%2==1)return -1;
int ans=0;
for(int i=n/8;i>=0;--i) {
if((n-i*8)%6==0) {
ans=i+(n-i*8)/6;break;
}
}
return ans;
}
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
int ans=process(n);
System.out.println(ans);
}
}
打表
时间复杂度 O ( 1 ) O(1) O(1)
import java.util.Scanner;
public class Main {
public static int process(int n) {
if(n%2==1)return -1;
if(n<18) {
if(n==2||n==4||n==10)return 0;
else if(n==6||n==8)return 1;
else return 2;
}
return (n-18)/8+3;
}
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
System.out.println(process(n));
}
}