Java后端顺丰笔试题编程题
2.丢手绢(70%)
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static int[] has=new int[100001];//test1
public static void main(String[] args) {
test2();
}
public static void test2(){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
int n=in.nextInt();
int max=0;
for (int i=0;i<n;i++){
int k=in.nextInt();
has[i]=k;
}
int m=in.nextInt();
int res=0;
for (int i=0;i<n;i++){
if (i<m){
res+=has[i];
}
else{
if (res+has[i]-has[i-m]>res){
res=res+has[i]-has[i-m];
}
}
}
System.out.println(res);
Arrays.fill(has,0);
}
}
public static void test1(){
Scanner scanner=new Scanner(System.in);
while(scanner.hasNext()){
int n=scanner.nextInt();
int m=scanner.nextInt();
int min=Integer.MAX_VALUE,max=1;
for (int i=0;i<m;i++){
int k=scanner.nextInt();
has[k]=1;
if (k<min)
min=k;
if (k>max)
max=k;
}
//cal
int res=Integer.MAX_VALUE;
int resi=1;
int tmpi=min>1?min-1:1, tmpj=max==n?n:max+1;
for (int i=tmpj;i>=tmpi;i--){
//cal cal
if (has[i]>0)
continue;
int tmp=0;
for (int j=tmpj;j>=tmpi;j--){
tmp+=has[j]>0?Math.abs(j-i):0;
}
if (tmp<=res){
res=tmp;
resi=i;
}
}
System.out.println(resi);
Arrays.fill(has,0);
}
}
}