栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

5-jd笔试(jd 闈㈣瘯)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

5-jd笔试(jd 闈㈣瘯)

30道选择题--略

算法题一

坦克游戏:

输入:a b c d四个输入数字分别代表,坦克数量,碉堡生命值,碉堡一次性可以炸毁的坦克数量,碉堡数量

输出:如果坦克胜利,返回需要几个回合,如果碉堡胜利,返回-1;

以下为一整个回合:

上回合:坦克攻击碉堡,如果坦克的数量大于当前碉堡的生命值,则碉堡炸掉,溢出的伤害由下一个碉堡承受下回合:碉堡反击,其反击伤害为c*(剩余碉堡数),如果伤害为10,则摧毁10量坦克

private static void method1() {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int tankNum = scanner.nextInt();
            int blood = scanner.nextInt();//生命值
            int count = scanner.nextInt();//一次可以炸毁的坦克数量
            int buildNum = scanner.nextInt();
            boolean vs = true;
            int nextBlood = blood;
            int c=0;
            while (tankNum > 0 && buildNum > 0) {
                if (vs) {
                    c++;
                    if (nextBlood < tankNum) {
                        buildNum-= tankNum / blood;
                        nextBlood -= tankNum % blood;
                    }else if(nextBlood==tankNum){
                        buildNum--;
                    }else{
                        nextBlood-=tankNum;
                    }
                    while (nextBlood<=0){
                        nextBlood+=blood;
                        buildNum--;
                    }
                } else {
                    int kill=count*buildNum;
                    tankNum-=kill;
                }
                vs = !vs;
            }
            if(tankNum==0&&buildNum==0||(tankNum>0)){
                System.out.println(c);
            }else{
                System.out.println(-1);
            }
        }
    }
算法题二

输入:

3 3  地点的个数 边的行数(关系的行数)

1 2 4 表示连接点1和点2的权重为4

1 3 5

2 3 3

输出:联通所有点的至少需要的权重1->2为4,2->3为3,所以权重至少为4;权重不为5因为不仅可以从1到达3,也可以通过2这个权重为3的点到达3

题目背景:压路机需要通过所有的路段1-n,我们需要知道压路机重量至少为多少才不会压垮权重为w的路段

private static void m2() {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int points = scanner.nextInt();
            int count=scanner.nextInt();
            Map map=new HashMap<>(points);
            int temp=1;
            while (temp<=points){
                map.put(temp,new Node(temp));
                temp++;
            }
            for (int i = 0; i < count; i++) {
                int d1=scanner.nextInt();
                int d2=scanner.nextInt();
                int weight=scanner.nextInt();
                map.get(d1).add(d2,weight);
                map.get(d2).add(d1,weight);
            }
            int res=Integer.MAX_VALUE;

            for (int i = 1; i <=points ; i++) {
                boolean[] used = new boolean[points + 1];
                used[i]=true;
                int tem=0;
                for (int j = 1; j <= points; j++) {
                    if(used[j])continue;
                    if(map.get(i).map.containsKey(j)){
                        used[j]=true;
                        tem=Math.max(tem,map.get(i).map.get(j));
                    }
                }
                res=Math.min(res,tem);
            }
            System.out.println(res);
        }
    }
class Node{
    int self;
    Map map=new HashMap<>();
    public Node(int self) {
        this.self = self;
    }
    public void add(int id, int weight){
        map.put(id, weight);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773544.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号