算法练习(10):牛客在线编程10 贪心算法

java 复制代码
package jz.bm;

import java.util.ArrayList;
import java.util.Arrays;

public class bm10 {
    /**
     * BM95 分糖果问题
     */
    public int candy (int[] arr) {
        int res = 0;
        int n = arr.length;
        int[] nums = new int[n];
        //每个人都分配一个糖果
        for (int i = 0; i < n; i++) {
            nums[i] = 1;
        }
        //从左到右递增则加1
        for (int i = 1; i < n; i++) {
            if (arr[i] > arr[i - 1]) {
                nums[i] = nums[i - 1] + 1;
            }
        }
        res = nums[n - 1];
        //从右到左增加则加1
        for (int i = n - 2; i >= 0; i--) {
            if (arr[i] > arr[i + 1] && nums[i] <= nums[i + 1]) {
                nums[i] = nums[i + 1] + 1;
            }
            res += nums[i];
        }
        return res;
    }

    /**
     * BM96 主持人调度(二)
     */
    public int minmumNumberOfHost (int n, int[][] startEnd) {
        int[] start = new int[n];
        int[] end = new int[n];
        for (int i = 0; i < n; i++) {
            start[i] = startEnd[i][0];
            end[i] = startEnd[i][1];
        }
        Arrays.sort(start);
        Arrays.sort(end);
        int res = 0;
        int j = 0;
        for (int i = 0; i < n; i++) {
            //新开始的节目大于上一轮结束的时间,主持人不变
            if (start[i] >= end[j]) {
                j++;
            } else
                res++;
        }
        return res;
    }
}
相关推荐
五仁火烧3 分钟前
大模型开发: MCP
java·大模型·mcp
yuzhiboyouye12 分钟前
XML写接口适用场景举例
java·服务器·前端
今天的接口写完了吗?16 分钟前
Java 使用 OkHttp 调用外部接口
java
yuzhiboyouye30 分钟前
零sql和xml写接口,的区别是什么,过程是什么,举例一下下,用mybatis-plus+ spring-boot
java·服务器·前端
小王师傅661 小时前
【设计模式】装饰模式(四):框架源码实战——从 Java I/O 到 Spring 到 MyBatis
java·设计模式
有Li1 小时前
【AI答疑】MR数据预处理步骤
人工智能·笔记·算法·语言模型·医学生
nvvas1 小时前
Spring AI 2.0正式GA:Token砍掉64%,Java的AI反击战打响了
java·人工智能
盛世宏博北京1 小时前
多传感器数据融合算法:实现档案库房温湿度全域无死角监测
算法·档案温湿度
程序员阿鹏1 小时前
双亲委派机制
java·jvm·数据结构·后端
步行cgn2 小时前
Spring Bean 的生命周期详解
java·后端·spring