LCP 18.早餐组合

​​题目来源:

leetcode题目,网址:LCP 18. 早餐组合 - 力扣(LeetCode)

解题思路:

按序遍历饮料数组,二分查找符合要求 staple 中满足要求的最大值所在位置。最后返回所有*(最大位置+1)之和即可。

解题代码:

class Solution {
    public int breakfastNumber(int[] staple, int[] drinks, int x) {
        int res=0;
        Arrays.sort(staple);
        Arrays.sort(drinks);
        int pre=staple.length-1;
        for(int i=0;i<drinks.length;i++){
            int thisPos=getPos(staple,pre,x-drinks[i]);
            if(thisPos==-1){
                break;
            }else{
                res+=thisPos+1;
                res=res%1000000007;
                pre=thisPos;
            }
        }
        return res;
    }
    public int getPos(int[] arr,int right,int max){
        if(arr[right]<=max){
            return right;
        }else if(arr[0]>max){
            return -1;
        }
        int left=0;
        int mid=left+(right-left)/2;
        while(!(arr[mid]<=max && arr[mid+1]>max)){
            mid=left+(right-left)/2;
            if(arr[mid]>max){
                right=mid-1;
            }else{
                left=mid+1;
            }
        }
        return mid;

    }
}
复制代码

总结:

无官方题解。


相关推荐
计算机毕设定制辅导-无忧学长6 分钟前
创建第一个 Maven 项目(二)
java·maven
xiezhr6 分钟前
spring官宣接入deepseek,真的太香了~
java·ai·deepseek
大吱佬8 分钟前
解决每次 Maven Rebuild 后 Java 编译器版本变为 1.5
java·开发语言·maven
B站计算机毕业设计超人8 分钟前
计算机毕业设计SpringBoot+Vue.jst0甘肃非物质文化网站(源码+LW文档+PPT+讲解)
java·vue.js·spring boot·后端·spring·intellij-idea·课程设计
m0_7482546642 分钟前
定时任务特辑 Quartz、xxl-job、elastic-job、Cron四个定时任务框架对比,和Spring Boot集成实战
java·spring boot·后端
海边漫步者1 小时前
Idea2024中搭建JavaFX开发环境并创建运行项目
java·intellij-idea·javafx
Warren981 小时前
Springboot中分析SQL性能的两种方式
java·spring boot·后端·sql·mysql·intellij-idea
SylviaW081 小时前
python-leetcode 37.翻转二叉树
算法·leetcode·职场和发展
玦尘、1 小时前
位运算实用技巧与LeetCode实战
算法·leetcode·位操作
Distance失落心2 小时前
idea任意版本的安装
java·ide·java-ee·eclipse·intellij-idea