贪心用法总结

贪心用法总结

1、技巧展示

说到贪心问题,首先想到背包客问题,问怎么装东西才能使得背包所装物品的价值最大,那么我们就首先调选价值大的物品装进背包,然后依次将剩下的物品装入到背包中。在写过贪心问题的题解之后,在这里做一个总结。

目的:使用贪心的目的,就是为了能够能快地解决问题(个人理解)。比如,要求最大,那么我们在每次选择上都选最大。要求最长,那么我们在每次选择上都选最长。要求最短时间,那么我们在每次选择上都选择最短时间。(小tips:贪心并不一定能够得到全局最优解)

技巧

①贪心思想求最大问题

解释:使用贪心思想求解最大值问题时,我们在求解过程的每一步都坚持选大不选小的原则,然后即可得到问题的答案。

②贪心思想求最小问题

解释:在使用贪心思想求解最小值问题的时候,我们在求解过程的每一步坚持选小不选大的原则,同样得到问题的答案。

2、小试牛刀

题目①通配符匹配

本题使用了技巧①,在对'*'号通配符匹配的时候,我们尽量选择最大值进行匹配。

alt

题目②连续子数组的最大和

本题使用了技巧①,在求解子数组的最大和时,只要子数组再加上当前值大于0,我们就认为该子数组的值有很大可能会增加,因此进行记录,并最终返回答案。

alt

题目③分糖果问题

本题使用了技巧②,对于分配的最少糖果,我们用贪心思想,如果一个孩子的分数大于另一个孩子的分数,我们只给1颗糖,这样每一次求解都是在追求最小值,最后便得到最少的糖果数。

alt

题目④买卖股票的最好时机(二)

本题使用了技巧①,在求解本题时,只要相邻两个数呈增长趋势,就记录,即每一步都记录最大值,最后返回卖股票多能盈利的最大钱数。

alt

题目⑤主持人调度

本题使用了技巧②,将活动时间排序,按照主持人能主持就全力主持的原则,每一次都坚持最小主持人数,最后便得到最少主持人数。

alt

22年春节特别专栏_贪心 文章被收录于专栏

贪心题解,图片随便找的

全部评论

相关推荐

一面052350min1.自我介绍2.在学校里的经历3.你希望测试开发岗位里的测试工作和开发工作占比是多少?4.实习拷打,详细拷打实习中做过的接口自动化项目5.为什么接口自动化项目选择pytest?6.设计测试用例会考虑哪些点?7.用过jekins的什么功能,了解过它底层的实现吗8.技术栈是?熟悉的编程语言?9.口述思路:二叉树的遍历10.手撕:二分查找11.浏览器输入url到展示页面的全流程?12.进程和线程13.死锁14.慢查询15.读过有关测试的技术书籍吗16.写测试自动化时用过python的哪些库?17.反问(作业帮直播业务,给学生直播上课之类的) 二面052755min1.自我介绍2...
一笑而过2222:1. String和StringBuffer区别:String是不可变、线程安全(因不可变特性)的,每次操作会创建新对象,适合只读场景;StringBuffer是可变、线程安全(方法加锁)的,可直接修改对象,适用于多线程环境下频繁修改字符串的场景 。 2. Java的垃圾回收器:Java垃圾回收器是JVM自动管理内存的组件,基于分代收集理论,通过标记-清除、复制、标记-整理等算法回收不再使用的对象,常见类型有Serial、Parallel、CMS、G1等,分别适用于不同性能需求场景。 3. Java的序列化:Java序列化是将对象转换为字节序列以便存储或传输的机制,对象所属类需实现Serializable接口,反序列化可将字节流恢复为对象,常用于分布式通信、数据持久化和对象深拷贝等场景。
查看24道真题和解析 面经...
点赞 评论 收藏
分享
野猪不是猪🐗:我assume that你must技术aspect是solid的,temperament也挺good的,however面试不太serious,generally会feel style上不够sharp
点赞 评论 收藏
分享
仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务