字节笔试-金字塔

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秋招笔试心得体会#
全部评论
我也是今天笔试这道题,也没有全过
点赞
送花
回复
分享
发布于 2022-09-18 12:35 福建
求大佬指点
点赞
送花
回复
分享
发布于 2022-09-18 13:10 浙江
滴滴
校招火热招聘中
官网直投
看着像是cur重复添加了
点赞
送花
回复
分享
发布于 2022-09-18 15:40 上海

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务