| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 【蓝桥Java每日一题】——11.做菜顺序(贪心秒杀困难题) -> 正文阅读 |
|
[数据结构与算法]【蓝桥Java每日一题】——11.做菜顺序(贪心秒杀困难题) |
??引言?? ? ? ? ? ? ? ?大家好啊,我是执梗。最近过年,首先祝大家都新年快乐,新的一年能变得更加优秀,达到自己心里的预期。今天给大家带来一道级别是困难的力扣题,但是利用贪心思想我们可以很快速地做出来,甚至称之为简单题也不为过,可见贪心之强大(不知道过年大家贪到了多少红包呢嘿嘿嘿😛) ??精彩回放??
🌸1.做菜顺序
????????🌸题目分析:首先我们要准备,对于这个满意程度是在取值是可以为负数的。这也就导致我们当我们选择做这道菜时,它本身对于我们的总和是负增加。有的人肯定想了,那还不简单,那我不选它不就行了吗。不!选了满意值为负数也有可能增大总和。 ? ? ? ??我们先从最简单的情况思考:如果我们只能选一道题,我们会怎么选?肯定大家会想到去选一道满意程度最大的菜s1,而且我们还得验证s1是否大于0,否则我们增大总和。 ? ? ? ? 此时的总和W: ? ? ? ? 然后我们又可以再选一道菜,这时我们选了满意程度第二的s2,那么此时的总和是多少呢? ? ? ? ? 此时的总和W: ? ? ? ? 如何知道我们什么条件下我们的总和增加了,也就是W2>W1,我们通过简单的数学推导就可以知道当时W2是大于W1的。也就是说如果s1+s2>0的话我们就可以选择s2这道题,这样可以让W变大,而我们所做的一切正是为了让W变大。 ? ? ? ? 如果我们此时还可以选择第三道菜:我们会选择满意程度第三的菜s3,那么此时的总和将会是:,为了确保W3>W2,我们推导出需要满足的条件,到这相信大家就有了一个大概的贪心思路。 ????????1.我们需要对数组排序,这是因为我们肯定优先考虑满意程度高的菜 ? ? ? ? 2.我们是否选择这道菜的标准在于:它的满意程度与前面已做的菜满意程度相加之和是否大于0,如果大于0说明即使这道菜的满意程度是负数,它也可以增加我们的总和。否则我们就不用考虑了,此时已有的总和就是最终的总和了。 ????????🌸代码活现:
? ? ? ? 这道题的标签还有动规的做法,虽然我看不太出来哈哈哈,但困难标签的动规题代码又多复杂可想而知。由此也能看出贪心的强大之处,这代码量就和简单题差不多。? ????????最后再次祝大家新的一年身体健康,事事如意,主要的还是编程之路越走越宽越来越顺。看完如果让你有一丝收获,球球感谢给一个三连支持!!! ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 17:20:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |