当前位置: 首页 > article >正文

[豆包MarCode AI 刷题] 算法题解 Java 青训入营考核 五题打卡第三天

目录

11 中 观光景点组合得分问题

55 易 小E的射击训练 

47 易 完美偶数计数

48 易 替换函数

70 易 打点计数器的区间合并


欢迎你报名豆包MarsCode 青训营-寒假专场!非常开心你加入这个充满活力和创新的大家庭。在这里,你将遇到一群和你一样对技术充满热情的小伙伴,一起学习、成长、分享~我们准备了丰富的课程内容,还有各种实战项目等你来挑战,相信你一定会收获满满

青训营是字节跳动技术团队发起的技术系列培训 & 人才选拔项目;面向高校在校生,旨在培养优秀且具有职业竞争力的开发工程师。
本期青训营由豆包MarsCode 团队联合掘金社区主办,课程包含前端、后端和大数据方向,在这个飞速发展的 AI 时代,我们将和豆包MarsCode 一起深入探索,在青训营的技术氛围中,学习技术,高效写码~

11 中 观光景点组合得分问题

import java.util.Arrays;

public class Main {
    public static int solution(int[] values) {
        int max=0;
        for(int i=0;i<values.length;i++){
            for(int j=i+1;j<values.length;j++){
                max=Math.max(max, values[i]+values[j]+i-j);
            }
        }
        return max; // Placeholder return
    }

    public static void main(String[] args) {
        System.out.println(solution(new int[]{8, 3, 5, 5, 6}) == 11 ? 1 : 0);
        System.out.println(solution(new int[]{10, 4, 8, 7}) == 16 ? 1 : 0);
        System.out.println(solution(new int[]{1, 2, 3, 4, 5}) == 8 ? 1 : 0);
    }
}

55 易 小E的射击训练 

public class Main {
    public static int solution(int x, int y) {
        // 计算射击点到靶心的距离的平方
        double distanceSquared = x * x + y * y;

        // 如果距离的平方大于100(即大于10的半径),得0分
        if (distanceSquared > 100) {
            return 0;
        }

        // 遍历从大到小的得分情况,判断射击点在哪个圆内
        for (int i = 1; i <= 10; i++) {
            // 如果距离的平方小于等于i*i,说明在第i个环内
            if (distanceSquared <= i * i) {
                return 11 - i;
            }
        }

        // 如果没有匹配的情况(不太可能到达这里),返回0分
        return 0;
    }

    public static void main(String[] args) {
        // System.out.println(solution(1, 0) == 10);
        // System.out.println(solution(1, 1) == 9);
        // System.out.println(solution(0, 5) == 6);
        // System.out.println(solution(3, 4) == 6);
        // System.out.println(solution(1, 0) );
        // System.out.println(solution(1, 1) );
        // System.out.println(solution(0, 5) );
        // System.out.println(solution(3, 4) );
    }
}

47 易 完美偶数计数

public class Main {
    public static int solution(int n, int l, int r, int[] a) {
        int cnt=0;
        for(int i=0;i<a.length;i++){
            if(a[i]%2==0&&a[i]>=l&&a[i]<=r){
                cnt++;
            }
        }
        return cnt;
    }

    public static void main(String[] args) {
        System.out.println(solution(5, 3, 8, new int[]{1, 2, 6, 8, 7}) == 2);
        System.out.println(solution(4, 10, 20, new int[]{12, 15, 18, 9}) == 2);
        System.out.println(solution(3, 1, 10, new int[]{2, 4, 6}) == 3);
    }
}

48 易 替换函数

public class Main {
    public static String solution(String s) {
        StringBuilder sb = new StringBuilder ("");
        for(int i=0;i<s.length();i++){
            if(s.charAt(i)=='a'){
                sb.append("%100");
            }else{
                sb.append(s.charAt(i));
            }
        }
        return sb.toString(); // Placeholder
    }

    public static void main(String[] args) {
        System.out.println(solution("abcdwa").equals("%100bcdw%100"));
        System.out.println(solution("banana").equals("b%100n%100n%100"));
        System.out.println(solution("apple").equals("%100pple"));
    }
}

70 易 打点计数器的区间合并

import java.util.Arrays;

public class Main {
    public static int solution(int[][] inputArray) {
        // 对范围按起始值进行排序
        Arrays.sort(inputArray, (a, b) -> Integer.compare(a[0], b[0]));
        
        int totalPoints = 0;
        int[] currentRange = inputArray[0];  // 初始化当前范围为第一个范围

        // 遍历剩下的范围
        for (int i = 1; i < inputArray.length; i++) {
            // 获取当前的范围和下一个范围
            int[] nextRange = inputArray[i];

            // 检查是否有重叠
            if (nextRange[0] <= currentRange[1]) {
                // 有重叠,合并范围
                currentRange[1] = Math.max(currentRange[1], nextRange[1]);
            } else {
                // 没有重叠,将当前范围的长度加到总点数
                totalPoints += currentRange[1] - currentRange[0] + 1;
                // 更新当前范围为下一个范围
                currentRange = nextRange;
            }
        }

        // 最后一个范围的点数也要加上
        totalPoints += currentRange[1] - currentRange[0] + 1;

        return totalPoints;
    }

    public static void main(String[] args) {
        //  You can add more test cases here
        int[][] testArray1 = {{1, 4}, {7, 10}, {3, 5}};
        int[][] testArray2 = {{1, 2}, {6, 10}, {11, 15}};

        System.out.println(solution(testArray1) == 9);
        System.out.println(solution(testArray2) == 12);
    }
}

http://www.kler.cn/a/488812.html

相关文章:

  • 2025年VGC大众汽车科技社招入职测评综合能力英语口语SHL历年真题汇总、考情分析
  • dbeaver创建create临时表之后查询不到问题排查
  • Springboot——钉钉(站内)实现登录第三方应用
  • C++【深入底层,从零模拟实现string类】
  • C++例程:使用I/O模拟IIC接口(6)
  • leetcode 面试经典 150 题:两数之和
  • 网络安全:守护数字世界的防线
  • 【react-pdf】实现在线pdf加载——翻页加载和下拉滚动加载
  • Vue.js组件开发-实现滚动加载下一页
  • HOW - Form 表单 label 和 wrapper 对齐场景
  • 统信桌面常用运维命令
  • 【华为OD-E卷 - 服务失效判断 100分(python、java、c++、js、c)】
  • LeetCode 747. 至少是其他数字两倍的最大数
  • C++—14、C++ 中的指针最基础的原理
  • React 元素渲染
  • 苍穹外卖的微信支付和接单和催单提醒
  • 青少年编程与数学 02-006 前端开发框架VUE 16课题、组件基础
  • 初学stm32 --- ADC多通道采集
  • 鸿蒙原生应用如何才能拉起系统浏览器?
  • Linux 命令与日志查看实用指南
  • 详解Sonar与Jenkins 的集成使用!
  • 【C++】Muduo库
  • vivado 时钟指南
  • .gitignore记录
  • 前端全局水印, 拖拉拽图片 ,拽入等比压缩,上传服务器后,java 转base64 加水印,然后前端http预览,确认保存,拽出删除。
  • VS Code 可视化查看 C 调用链插件 C Relation