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

网站开发wbs工作分解结构网站推广多少钱

网站开发wbs工作分解结构,网站推广多少钱,中国空间站建造完成,合肥软件开发本文涉及的基础知识点 C二分查找 贪心(决策包容性) LeetCode 2517. 礼盒的最大甜蜜度 给你一个正整数数组 price ,其中 price[i] 表示第 i 类糖果的价格,另给你一个正整数 k 。 商店组合 k 类 不同 糖果打包成礼盒出售。礼盒的 甜蜜度 是礼…

本文涉及的基础知识点

C++二分查找
贪心(决策包容性)

LeetCode 2517. 礼盒的最大甜蜜度

给你一个正整数数组 price ,其中 price[i] 表示第 i 类糖果的价格,另给你一个正整数 k 。
商店组合 k 类 不同 糖果打包成礼盒出售。礼盒的 甜蜜度 是礼盒中任意两种糖果 价格 绝对差的最小值。
返回礼盒的 最大 甜蜜度。
示例 1:
输入:price = [13,5,1,8,21,2], k = 3
输出:8
解释:选出价格分别为 [13,5,21] 的三类糖果。
礼盒的甜蜜度为 min(|13 - 5|, |13 - 21|, |5 - 21|) = min(8, 8, 16) = 8 。
可以证明能够取得的最大甜蜜度就是 8 。
示例 2:

输入:price = [1,3,1], k = 2
输出:2
解释:选出价格分别为 [1,3] 的两类糖果。
礼盒的甜蜜度为 min(|1 - 3|) = min(2) = 2 。
可以证明能够取得的最大甜蜜度就是 2 。
示例 3:

输入:price = [7,7,7,7], k = 2
输出:0
解释:从现有的糖果中任选两类糖果,甜蜜度都会是 0 。

提示:
2 <= k <= price.length <= 105
1 <= price[i] <= 109

C++ 二分查找+贪心

将price按升序排序。本题的Check函数f(x):是否存在某种方案甜蜜度大于等于x。 ⟺ \iff price中任意选择k个元素,两两差的绝对值 >= x。
性质一:某合法方案如果不包括min(price),则将已选择的糖果价格最低的换成min(price),仍然合法。
性质二:如果选择的第i个,第i+1个糖果之间有价格>= 第i个糖果+x,则用此糖果换第i+1个糖果。
总结:选择min(price)后,按性质三选择,简称g(x)。
f(x) → \rightarrow g(x) ;g(x)的方案符合题意,故g(x) → \rightarrow f(x)。即f(x) ⟺ \iff g(x)。
本题的解f(x)的最大解,即g(x)的最大解也是本题答案。
二分类型:寻找尾端。
Check函数的参数范围:[0,1e9]

代码

核心代码

template<class INDEX_TYPE>
class CBinarySearch
{
public:CBinarySearch(INDEX_TYPE iMinIndex, INDEX_TYPE iMaxIndex):m_iMin(iMinIndex),m_iMax(iMaxIndex) {}template<class _Pr>INDEX_TYPE FindFrist( _Pr pr){auto left = m_iMin - 1;auto rightInclue = m_iMax;while (rightInclue - left > 1){const auto mid = left + (rightInclue - left) / 2;if (pr(mid)){rightInclue = mid;}else{left = mid;}}return rightInclue;}template<class _Pr>INDEX_TYPE FindEnd( _Pr pr){int leftInclude = m_iMin;int right = m_iMax + 1;while (right - leftInclude > 1){const auto mid = leftInclude + (right - leftInclude) / 2;if (pr(mid)){leftInclude = mid;}else{right = mid;}}return leftInclude;}
protected:const INDEX_TYPE m_iMin, m_iMax;
};class Solution {public:int maximumTastiness(vector<int>& price, int k) {sort(price.begin(), price.end());auto Check = [&](int mid) {int pre = price.front();int cnt = k - 1;for (int i = 1; (i < price.size())&& cnt ; i++) {if (price[i] >= mid + pre) {cnt--;pre = price[i];}}return 0 == cnt;};return CBinarySearch<int>(0, 1e9).FindEnd(Check);}};

单元测试

vector<int> price;int k;TEST_METHOD(TestMethod1){price = { 1,1000'000'000 }, k = 2;auto res = Solution().maximumTastiness(price, k);AssertEx(999'999'999, res);}TEST_METHOD(TestMethod11){price = { 13, 5, 1, 8, 21, 2 }, k = 3;auto res = Solution().maximumTastiness(price, k);AssertEx(8, res);}TEST_METHOD(TestMethod12){price = { 1,3,1 }, k = 2;auto res = Solution().maximumTastiness(price, k);AssertEx(2, res);}TEST_METHOD(TestMethod13){price = { 7,7,7,7 }, k = 2;auto res = Solution().maximumTastiness(price, k);AssertEx(0, res);}

扩展阅读

我想对大家说的话
工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作
有效学习:明确的目标 及时的反馈 拉伸区(难度合适) 专注
闻缺陷则喜(喜缺)是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛
失败+反思=成功 成功+反思=成功

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。

http://www.ds6.com.cn/news/47955.html

相关文章:

  • 日本出线未云南优化公司
  • 厦门思总建设有限公司网站网上在哪里打广告最有效
  • 使用bootstrap做网站的视频品牌推广方案策划书
  • 仿站模板网络营销学校
  • 提供营销网站建设公司黑帽seo技巧
  • 日木女人做爰视频网站上海单个关键词优化
  • 做宣传单用什么网站网站查询信息
  • 网站排名做不上去seo超级外链工具免费
  • 定制网站的价格低洛阳搜索引擎优化
  • 二维码怎么在网站上做推广高级seo优化招聘
  • 建设工程信息在哪个网站优化二十条
  • 网站搭建培训百度小说搜索风云榜排名
  • 合肥网站建设电话seo优化网站排名
  • 网站连接数据库失败怎么办郑州网站建设方案
  • 长春做网站要多少钱店铺推广软文500字
  • wordpress全站隐藏如何在手机上制作网站
  • 做网站武汉阳江seo
  • 社交网络的推广方法有哪些上海关键词seo
  • 搭建网站需要什么软件石家庄市人民政府官网
  • 无锡企业网站制作需要多少钱营销推广主要包括
  • 甘肃网站建设费用深圳网站建设推广方案
  • 傻瓜动态建站 工具游戏优化大师下载安装
  • wordpress 课程插件苏州关键词优化搜索排名
  • seo需求优化网站性能
  • 网站建设便宜的公司万能识图
  • 网站建设规划书电商百度一下首页极简版
  • 企业网站模板 下载 论坛亚马逊查关键词排名工具
  • 潍坊企业做网站大一html网页制作作业
  • 三合一网站管理系统怎么做的百度问一问客服人工在线咨询
  • 网页设计与制作教程邓长寿湖南网站seo