23/5/25字节跳动后端 第一次笔试 欢迎大佬来评论解法
递归嘛,样例过了但是没分
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int t=in.nextInt();
int[][] arr=new int[t][];
int[] res=new int[t];
for(int i=0;i<t;i++){
int n = in.nextInt();
arr[i]=new int[n];
for(int j=0;j<n;j++){
arr[i][j]=in.nextInt();
}
// res[i]=arr[i][0];//不能跳过第一只怪物
// if(n<=2)
arr[i][1]+=Math.max(arr[i][0],0);
for(int j=2;j<n;j++){
arr[i][j]+=Math.max(arr[i][j-1],arr[i][j-2]);
}
res[i]=arr[i][n-1];
System.out.println(res[i]);
}
// for(int i=0;i<t;i++){
// System.out.println(Arrays.toString(arr[i]));
// }
}
}
做了1h 做出来90%
// 本题为考试单行多行输入输出规范示例,无需提交,不计分。
import java.util.Scanner;
import java.util.Arrays;
public class Main {
static int n;
static int[] arr;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
n=in.nextInt();
int co=n;
int m=in.nextInt();
arr=new int[n+1];
for(int i=1;i<=n;i++){
arr[i]=in.nextInt();
}
in.close();
int a=-1;
while(co>0){
co=sub(a,co,m);
// System.out.println(Arrays.toString(arr));
a--;
}
for(int i=1;i<=n;i++){
if(arr[i]%2==0)
System.out.print("B");
else
System.out.print("A");
// System.out.print(arr[i]);
}
}
public static int sub(int a,int count,int m){
int mm=m;
int max=1;
for(int j=2;j<=n;j++){
if(arr[j]>arr[max]){
max=j;
}
}
arr[max]=a;
count--;
for(int left=max-1;left>=1;left--){
if(arr[left]>0){
m--;
count--;
arr[left] = a;
if(m==0)
break;
}
}
for(int r=max+1;r<=n;r++){
if(arr[r]>0){
mm--;
count--;
arr[r] = a;
if(mm==0)
break;
}
}
return count;
}
}
本文来自博客园,作者:软工菜鸡,转载请注明原文链接:https://www.cnblogs.com/SElearner/p/17676652.html