拼多多笔试
看了遍题倒着做,第四题做出来了,第三题感觉没问题但是只能16%,第二题大概知道要用DFS,但是不会,跟昨天携程那个题感觉有点像,第一题感觉思路没问题,但是0%。
附下第四题本人的菜鸡代码。
public class Main{
private static int w = 0;
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
while(n>0){
int m = in.nextInt();
int[] e = new int[m];
for(int i=0;i<m;i++){
e[i]=in.nextInt();
}
int sum = 0;
while(!check(e)){
for(int i=0;i<e.length;i++){
if(e[i]==w)
e[i]=0;
}
sum++;
}
System.out.println(sum);
n--;
}
}
public static boolean check(int[] e){
for(int i=0;i<e.length-1;i++){
if(e[i]>e[i+1]){
w=e[i];
return false;
}
}
return true;
}
}
附下第四题本人的菜鸡代码。
public class Main{
private static int w = 0;
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
while(n>0){
int m = in.nextInt();
int[] e = new int[m];
for(int i=0;i<m;i++){
e[i]=in.nextInt();
}
int sum = 0;
while(!check(e)){
for(int i=0;i<e.length;i++){
if(e[i]==w)
e[i]=0;
}
sum++;
}
System.out.println(sum);
n--;
}
}
public static boolean check(int[] e){
for(int i=0;i<e.length-1;i++){
if(e[i]>e[i+1]){
w=e[i];
return false;
}
}
return true;
}
}
全部评论
第三题 1e5个数据全为8的时候, 直接求积, sum = 8^(1e5) 炸longlong炸到姥姥家去
笔试一般我都不用本地IEDA,刚才在本地debug了下第一题发现跟b和m比大小我用的==,才发现应该用equal,改过来后我试了几个测试用例,结果是对的,但是我又发现一个问题,就是会出现收宝石的商人在不同关对同一类宝石价格会不一样,比如第二关商人来收A类宝石,10金币一个,第四关他又来收A类宝石,30金币一个,这个时候我作为预言家应该把A类宝石留到第四关再卖给他,收益会最大,一想到这个,发现果然不是我能做的,我估计我改过来的代码最多也就过个10%-20%吧,吃饭了
兄弟我第一志愿已经无了你呢,我也只做出一题
相关推荐