百度笔试你们A了几道题

百度凉凉,做的自闭了


第一题a了10%,有大佬帮忙看一下吗,我的思路是如果n是素数,就返回n*(n-1)-1,如果n不是素数,就找到一大的素数,返回n*m-1
public static boolean isS(int n){
        for(int i = 2;i < Math.sqrt(n);i++){
            if(n % i==0)
                return false;
        }
        return true;
    }

    public static void main(String[] args) {
        Scanner ac = new Scanner(System.in);
        int n = ac.nextInt();
        int num = 2;
        if(isS(n)){
            num = n-1;
        }else {
            for(int i = n;i>2;i--){
                if(isS(i)){
                    num = i;
                    break;
                }
            }
        }
        System.out.println(num+" "+n);
        if(n == 2)
            System.out.println(1);
        else {
            long sum = (long)n*num-1;
            System.out.println(sum);
        }
    }

第二题一直报错,思路是找到每次排序记录cnt ,cnt = (num[n-1]-num[n-2])/(n+1);
一点也没过。。。。,有大佬指出一下错误在哪,谢谢
public static void main(String[] args) {
        Scanner ac = new Scanner(System.in);
        int n = ac.nextInt();
        long[] num = new long[n];
        for(int i = 0;i < n;i++)
            num[i] = (long)ac.nextInt();
        Arrays.sort(num);
        long ans = 0;
        while(num[n-1] >= n){
            long b = num[n-1]-num[n-2];
            long cnt = b/(n+1);
            if(cnt == 0)
                cnt = 1;
//            System.out.println(cnt);
            num[n-1] -= n*cnt;
            for(int i = 0;i < n-1;i++)
                num[i] += cnt;
            ans += cnt;
            Arrays.sort(num);
        }
        System.out.println(ans);
    }
第三题的话过了60%,用的深搜,后来超时了,也没时间改了
public static int ans = 0;

    static class Node{
        public int val;
        public int index;
        public ArrayList<Node> next = null;
        Node(int val,int index){
            this.val = val;
            this.index = index;
        }
        public int getVal(){
            return val;
        }
        public ArrayList<Node> getNext(){
            return next;
        }
        public void setNext(ArrayList<Node> t){
            this.next = t;
        }
        public int getIndex(){
            return index;
        }
    }

    public static void main(String[] args) {
        Scanner ac = new Scanner(System.in);
        int n = ac.nextInt();
        Node[] nodes = new Node[n];
        for(int i = 0;i < n;i++){
            int tmp = ac.nextInt();
            nodes[i] = new Node(tmp,i);
        }
        for(int i = 0;i < n-1;i++){
            int a = ac.nextInt()-1;
            int b = ac.nextInt()-1;
            Node root = nodes[a];
            if(root.getNext() == null){
                ArrayList<Node> t = new ArrayList<>();
                t.add(nodes[b]);
                root.setNext(t);
            }else{
                root.getNext().add(nodes[b]);
            }

            Node root1 = nodes[b];
            if(root1.getNext() == null){
                ArrayList<Node> t = new ArrayList<>();
                t.add(nodes[a]);
                root1.setNext(t);
            }else{
                root1.getNext().add(nodes[a]);
            }


        }

        System.out.println(help(nodes));


//        for (int i = 0;i < n;i++){
//            System.out.print(nodes[i].getVal()+" ");
//            if(nodes[i].getNext() == null){
//                System.out.println();
//                continue;
//            }
//
//            int cnt = nodes[i].getNext().size();
//            for(int j = 0;j < cnt;j++)
//                System.out.print(nodes[i].getNext().get(j).getVal() +" ");
//            System.out.println();
//        }
    }

    public static int help(Node[] nodes){
        boolean[] isR = new boolean[nodes.length];
        for(int i = 0;i < nodes.length;i++){
            isR[i] = true;
            dfs(isR,nodes,1,i);
            isR[i] = false;
        }
        return  ans;
    }

    public static void dfs(boolean[] isR,Node[] nodes,int cnt,int beg){
        ArrayList<Node> tmp = nodes[beg].getNext();
        if(tmp == null){
            ans = Math.max(ans,cnt);
            return;
        }
        for(int i = 0;i < tmp.size();i++){
            Node node = tmp.get(i);
            int index = node.getIndex();
            if(!isR[index] && node.getVal() > nodes[beg].getVal()){//如果是递增的序列,dfs
                isR[index] = true;
                dfs(isR,nodes,cnt+1,index);
                isR[index] = false;
            }else if(!isR[index] && node.getVal() <= nodes[beg].getVal()){
                ans = Math.max(ans,cnt);//不满足条件,继续寻找
                isR[index] = true;
                dfs(isR,nodes,1,index);
                isR[index] = false;
            }
        }
        ans = Math.max(cnt,ans);
    }



#百度2020春招简历投递开始##百度##笔试题目#
全部评论
2.9,最后一道bfs总有10%过不了
1 回复 分享
发布于 2020-03-29 21:07
第二题本地ac,牛客过不了,晕
1 回复 分享
发布于 2020-03-29 21:05
第一题要用long型吧
1 回复 分享
发布于 2020-03-29 21:04
我第一题a了10%,,第二题本地IDE成功,然后在牛客一直显示数组越界;第三题不会🤣
1 回复 分享
发布于 2020-03-29 21:04
您好,请问还记得题目,方便分享一下吗?
点赞 回复 分享
发布于 2020-04-04 14:26
第一题ac,第二题超时,第三题10%,真难顶。。
点赞 回复 分享
发布于 2020-03-29 21:25
第一题30% 全超时
点赞 回复 分享
发布于 2020-03-29 21:22
第一题30 % 第一次 一个while 两个for循环超时,  第二次一个while 一个for循环超时 第三次一个while 超时 算了下一题
点赞 回复 分享
发布于 2020-03-29 21:17
加油加油,准备面试
点赞 回复 分享
发布于 2020-03-29 21:15
100  100  20【第三题不会也没时间了,直接输出10,就过了20%】
点赞 回复 分享
发布于 2020-03-29 21:13
题目不一样啊,我的第一题是两个数组,取数,求和最大,第二题是括号匹配+涂颜色这个题,没有第三题啊
点赞 回复 分享
发布于 2020-03-29 21:10
第一题看到样例猜了n*(n-1)-1,直接AC,想了下,n和(n-1)肯定互质,最小公倍数是两个相乘,最大公约数则是1,结果肯定最大 第二题0%,想了一个小时,凉凉 第三题60%,从权值最小的点开始dfs遍历
点赞 回复 分享
发布于 2020-03-29 21:08
就第一题没做出来😅
点赞 回复 分享
发布于 2020-03-29 21:07
第一题直接返回n * (n - 1) - 1 但是要注意如果用int保存结果,结果可能会溢出,n的值可能很大,所以得用long保存结果
点赞 回复 分享
发布于 2020-03-29 21:06
第一题:直接n*(n-1)-1,因为相邻的数必定互素。 第二题:极限条件是1,2,3,4,5.....n为止。但是一开始要判断度度是不是先手就输。比如,数量为0的有两堆,或者有相同数量的石子堆有2个以上,或者石子堆2个的数量是不是2个,或者石子堆两个的时候k-1有木有石子堆。 第三题:我不知道对错,因为我忘记怎么格式化输出了。我用的c++,从来没记这个。 AC两道。
点赞 回复 分享
发布于 2020-03-29 21:06
为啥我只有两个编程题,难道给我发错卷子了?
点赞 回复 分享
发布于 2020-03-29 21:04
兄弟,n和n-1一定互质,因此公倍数乘积最大,公约数为1,答案就是(n-1)*n-1
点赞 回复 分享
发布于 2020-03-29 21:04
0
点赞 回复 分享
发布于 2020-03-29 21:04
第一道我n * (n - 1) - 1就ac了....
点赞 回复 分享
发布于 2020-03-29 21:03

相关推荐

迷茫的大四🐶:价格这么低都能满了?
点赞 评论 收藏
分享
评论
1
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务