LCP 18. 早餐组合

小扣在秋日市集选择了一家早餐摊位,一维整型数组 staple 中记录了每种主食的价格,一维整型数组 drinks 中记录了每种饮料的价格。小扣的计划选择一份主食和一款饮料,且花费不超过 x 元。请返回小扣共有多少种购买方案。

注意:答案需要以 1e9 + 7 (1000000007) 为底取模,如:计算初始结果为:1000000008,请返回 1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/2vYnGI
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

排序

import java.util.Arrays;
import java.util.Comparator;

class Solution {

    private static final int MOD = 1000000007;

    public int breakfastNumber(int[] staple, int[] drinks, int x) {
        Arrays.sort(staple);
        Arrays.sort(drinks);
        int stapleIndex = staple.length - 1;
        int drinksIndex = 0;
        int ans = 0;
        while (stapleIndex >= 0) {
            while (drinksIndex < drinks.length && drinks[drinksIndex] + staple[stapleIndex] <= x) {
                drinksIndex++;
            }
            ans = (ans + drinksIndex) % MOD;
            stapleIndex--;
        }
        return ans;
    }
}

桶排序

posted @ 2022-01-24 15:33  Tianyiya  阅读(39)  评论(0)    收藏  举报