力扣2517.礼盒的最大甜蜜度
-
二分答案求最小值
- 排完序判断是否有k个差距至少为mid的元素
- 别用i遍历 可能会越界 用 : 有多少取多少
-
class Solution {public:int maximumTastiness(vector<int>& price, int k) {ranges::sort(price);auto check = [&](int mid) -> bool{int res=1,pre = price[0];for(auto p : price){if(p >= pre + mid){pre = p;res++;}}return res >= k;};int l = 0,r = ranges::max(price);while(l<r){int mid = l + r + 1>> 1;if(check(mid)) l = mid;else r = mid - 1;}return l;}};