360 4.16笔试(Java实现)

第一题过了百分之45
//
//                输入
//        输入第一行包含两个正整数n,m,分别代表参赛选手数量和取得连胜的要求。(1<=n<=100000,1<=m<=10^9)
//
//        输入第二行包含n个正整数,中间用空格隔开,第i个数表示队伍的第i位选手的战斗力,整体是一个1~n的排列。
//
//        输出
//        输出仅包含一个正整数,表示截止到游戏终止,共进行多少场比赛。
//
//
//        样例输入
//        4 2
//        1 3 2 4
//        样例输出
//        2
//通过:45


import java.util.*;

public class Main {

    public static void main(String[] args){
        Deque<Integer> q=new LinkedList<>();

        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        long m=in.nextLong();
        long[] map=new long[n+1];

        for(int i=0; i<n; i++){
            q.addLast(in.nextInt());
        }
        if(n==1) System.out.println(0);
        else{
            int cnt=0;
            while (true){
                cnt++;
                int first=q.pollFirst();
                int senond=q.pollFirst();
                if(first<senond){
                    map[senond]++;
                    if(map[senond]==m) break;
                    q.addFirst(senond);
                    q.addLast(first);
                }else{
                    map[first]++;
                    if(map[first]==m) break;
                    q.addFirst(first);
                    q.addLast(senond);
                }
            }
            System.out.println(cnt);
        }

    }

}

第二题过了百分之72
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
//
//                输入
//        输入两个整数n,a0(1≤n,a0≤100)。
//
//        输出
//        输出概率,小数点后四舍五入保留5位小数。
//
//
//        样例输入
//        3 3
//        样例输出
//        0.72049
//
//        提示
//        输入样例2
//        1 3
//        输出样例2
//        0.25000
//
//        输入样例3
//        100 3
//        输出样例3
//        1.00000
//通过:72

public class Main {

    private static double res=0;
    public static void main(String[] args){

        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        int a=in.nextInt();
        helper(n,a,1);
        System.out.println(String.format("%.5f",res));
    }

    public static void helper(int n, int a,double pro){
        if(n==0){
            if(a==0) res+=pro;
            return;
        }
        for(int i=0; i<=a; i++){
            double tmp=pro;
            pro*=1/(double)(a+1);
            helper(n-1, a-i, pro);
            pro=tmp;
        }
    }

}




#360招聘##360公司##笔试题目#
全部评论
多久会发面试通知
点赞 回复 分享
发布于 2020-04-17 18:33
我也是Java为啥题目不一样? 我的A卷
点赞 回复 分享
发布于 2022-04-16 17:21

相关推荐

是感谢信收割机:二笔?
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
点赞 3 评论
分享
牛客网
牛客企业服务