首页 > 其他分享 >2517. 礼盒的最大甜蜜度

2517. 礼盒的最大甜蜜度

时间:2023-06-01 19:56:29浏览次数:44  
标签:礼盒 idx val int 甜蜜 最大值 集合 2517 price

题目链接:2517. 礼盒的最大甜蜜度

方法:二分

解题思路

  • 题目意思:当前有 \(n\) 类糖果,从 \(0\) 到 \(n - 1\) 编号,\(price[i]\) 表示第 \(i\) 类糖果的价格,现要你在其中选择 \(k\) 类不同的糖果,组成一个集合 \(s\),该集合的值为集合中两种糖果差的绝对值的最小值,现在要求你计算所有可能集合值的最大值;
  • 明确几点:
    • 要求的是最大值,只是最大值中的“值”为最小值;
    • 集合 \(s\) 一定由 \(k\) 类组成,否则没有值;
    • 最大值一定在,\([0, max(price) - min(price)]\) 区间内。
  • 假设某集合的值为 \(val\),那么集合中两个元素间的差值一定大于等于 \(val\),那么若该集合中元素从小到大排列,那么其递增的值大于等于 \(val\),且集合以 \(min(price)\) 为起点(贪心思想),进行二分查找其下一个可能元素,就可以确定值为 \(val\) 的集合,此时说明当前值 \(val\) 存在,那么其可能的最大值在 \([val, max(price) - min(price)]\) 之间,显然也可以进行二分。

代码

class Solution {
public:
    int maximumTastiness(vector<int>& price, int k) {
        sort(price.begin(), price.end());
        int n = price.size();
        int l = 0, r = price[n - 1] - price[0];
        while (l < r) {
            int mid = l + r + 1 >> 1;
            int cnt = 1;
            for (int i = 0, idx; i < n; i = idx ) {
                idx = lower_bound(price.begin() + i, price.end(), price[i] + mid) - price.begin();
                if (idx != n) cnt ++ ;
            }
            if (cnt >= k) l = mid;
            else r = mid - 1;
        }
        return l;
    }
};

复杂度分析

时间复杂度:\(O((n + logU)logn),U = max(price) - min(price)\);
空间复杂度:\(O(1)\),不算排序。

标签:礼盒,idx,val,int,甜蜜,最大值,集合,2517,price
From: https://www.cnblogs.com/lxycoding/p/17450024.html

相关文章

  • 2517. 礼盒的最大甜蜜度
    给你一个正整数数组price,其中price[i]表示第i类糖果的价格,另给你一个正整数k。商店组合k类不同糖果打包成礼盒出售。礼盒的甜蜜度是礼盒中任意两种糖果价格绝对差的最小值。返回礼盒的最大甜蜜度。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/maxim......
  • (转)史上人间清醒的芝大毕业演讲:圆满的人生,是从开放式选择走向甜蜜献身 -- 大卫·布鲁
      https://www.bilibili.com/video/BV1ch411c747/?spm_id_from=333.1007.tianma.1-2-2.click&vd_source=e4991eff671e2c8b3ce1f748b6cca451史上人间清醒的芝大毕业演讲:圆满的人生,是从开放式选择走向甜蜜献身大卫·布鲁克斯(DavidBrooks) the need to be careful about......
  • [LeetCode] 2517. Maximum Tastiness of Candy Basket
    Youaregivenanarrayofpositiveintegers price where price[i] denotesthepriceofthe ith candyandapositiveinteger k.Thestoresellsbasketsof......
  • 逢节必火,礼盒产品缘何持续上热门?
    每逢节日前夕,各大品牌的节日礼盒不仅穿行街市、走亲访友,同时也在社交平台迎来它们的高光时刻,成为大众讨论的焦点。即将在2022年11月8-11日开展的第30届中国(深圳)国际礼品及家......
  • P2517 [HAOI2010]订货
    简要题意一家公司销售一种商品,在时刻\(i\)可以需要\(U_i\)份商品。第\(i\)时刻向生产方购买\(1\)份商品需要\(d_i\)的代价。\(i-1\)时刻的\(1\)份商品滞留到......