字节笔试-金字塔
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秋招笔试心得体会#