字节笔试-金字塔
package com.example.seckill.pojo;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class JinZiTa {
public static void main(String[] args) {
Scanner sin = new Scanner(System.in);
int n = sin.nextInt();
int m = sin.nextInt();
int ans = m;
List<Integer> last = new ArrayList<>();
for(int i=0;i<m;i++){
last.add(sin.nextInt());
}
for(int i=1;i<n;i++){
m = sin.nextInt();
List<Integer> cur = new ArrayList<>();
for(int j=1;j<m;j++){
int x = sin.nextInt();
int l = binarySearch(last, x);
if (l==-1){
if(last.size()>0&&x+50>last.get(0)){
ans++;
cur.add(x);
}
} else {
if (x<last.get(l)+50){
ans++;
cur.add(x);
} else if (x<last.get(l)+100&&(l+1<last.size()&&x+100>last.get(l+1))){
ans++;
cur.add(x);
}
}
}
if(cur.size()==0){
break;
}
last = cur;
}
System.out.println(ans);
}
public static int binarySearch(List<Integer> a, int x){
int l=0, r=a.size()-1;
int ans = -1;
while(l<=r){
int m = (l+r)/2;
if(a.get(m)<x){
r = m-1;
}else {
ans = m;
l = m+1;
}
}
return ans;
}
}
上面是我的代码,我就过了23%,有没有大佬告诉我我错在哪里了,或者是有什么corner case我没想到吗 #字节跳动23秋招笔试心得体会#
