当前位置: 首页 > news >正文

2023-06-01 LeetCode每日一题(礼盒的最大甜蜜度)

2023-03-29每日一题

一、题目编号

二、题目链接

点击跳转到题目位置

三、题目描述

给你一个正整数数组 price ,其中 price[i] 表示第 i 类糖果的价格,另给你一个正整数 k 。

商店组合 k 类 不同 糖果打包成礼盒出售。礼盒的 甜蜜度 是礼盒中任意两种糖果 价格 绝对差的最小值。

返回礼盒的 最大 甜蜜度。

提示:

  • 1 <= price.length <= 105
  • 1 <= price[i] <= 109
  • 2 <= k <= price.length

四、解题代码

class Solution {bool judge(int degree, vector<int> &price , int k, int n){int num = 1;int index = price[0];for(int i = 1; i < n; ++i){if(price[i] - index >= degree){index = price[i];++num;}}if(num >= k){return true;}return false;}public:int maximumTastiness(vector<int>& price, int k) {sort(price.begin(), price.end());int n = price.size();int left = 0;int right = price[n - 1] - price[0];int ans = -1;while(left <= right){int mid = ((right - left) >> 1) + left;if(judge(mid, price, k, n) == true){ans = mid;left = mid+1;} else{right = mid-1;}}return ans;}
};

五、解题思路

(1) 这道题目采用的是二分答案+贪心的方式来解决本道题目。

(2) 首先将价格从低到高来进行排序,那么最小的甜蜜度肯定为0,最大的甜蜜度肯定为price[n-1] - price[0]。那么我们就可以用二分答案的方式,在这个甜蜜度区间内进行查找,直到查找到答案。

(3) 那么我们怎么判断二分查找的答案是正确的呢。假设我们判断甜蜜度degree的答案是正确,那就是遍历一个有序数组,找到k个满足间隔大于等于degree的数。这个问题显然是熟悉的贪心思路(样板为活动安排问题)。

(4) 最后返回二分搜索出来的答案即可。

http://www.lryc.cn/news/91928.html

相关文章:

  • Spring架构篇--2.7.2 远程通信基础--Netty原理--ServerBootstrap
  • awk编辑器
  • DicomObjects.Core 3.0.17 Crack
  • 电脑怎么通过网络传输文件?
  • 人工智能之深度学习
  • 性能测试设计阶段
  • leetCode !! word break
  • 基础学习——关于list、numpy、torch在float和int等数据类型转换方面的总结
  • 华纳云美国Linux服务器常用命令分享
  • 【minio】8.x版本与SpringBoot版本不兼容报错
  • 如何用chatGPT赚钱?
  • 【Go编程语言】流程控制
  • Sql Server 自动备份
  • ThreadLocal的应用
  • 中值滤波_中值滤波原理
  • day15 - 使用图像金字塔进行图像拼接
  • 算法修炼之筑基篇——筑基一层初期(解决01背包问题)
  • JVM的空间结构
  • 图像分割的常用算法
  • AI歌手真的可以吗
  • Kubernetes高级存储
  • 云原生之使用Docker部署docker-compose-ui工具
  • 文心一言 vs GPT4
  • Tcl-5. format 命令
  • BloombergGPT: 首个金融垂直领域大语言模型
  • CMake深度解析:掌握add_custom_command,精通Makefile生成规则
  • 基于Yolov5目标检测的物体分类识别及定位(二) -- yolov5运行环境搭建及label格式转换
  • Office project 2019安装
  • 【leetcode-mysql】1251. 平均售价
  • Razor代码复用