贪心
# 贪心
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 。一般验证比较困难,我们可以使用对数器进行验证。
# 字符拼接
给定一个由字符串组成的数组 strs,必须把所有的字符串拼接起来,返回所有可能的拼接结果中字典序最小的结果
# 切金条
一块金条切成两半,是需要花费和长度数值一样的铜板 比如长度为 20 的金条,不管怎么切都要花费 20 个铜板,一群人想整分整块金条,怎么分最省铜板? 例如,给定数组 {10,20,30},代表一共三个人,整块金条长度为 60,金条要分成 10,20,30 三个部分。 如果先把长度 60 的金条分成 10 和 50,花费 60;再把长度 50 的金条分成 20 和 30,花费 50;一共花费 110 铜板 但如果先把长度 60 的金条分成 30 和 30,花费 60;再把长度 30 金条分成 10 和 20,花费 30;一共花费 90 铜板 输入一个数组,返回分割的最小代价
# 放灯笼
给定一个字符串 str,只由 'X' 和 '.' 两种字符构成 'X' 表示墙,不能放灯,也不需要点亮;'.' 表示居民点,可以放灯,需要点亮 如果灯放在 i 位置,可以让 i-1,i 和 i+1 三个位置被点亮 返回如果点亮 str 中所有需要点亮的位置,至少需要几盏灯
# 会议安排
一些项目要占用一个会议室宣讲,会议室不能同时容纳两个项目的宣讲,给你每一个项目开始的时间和结束的时间 你来安排宣讲的日程,要求会议室进行的宣讲的场次最多,返回最多的宣讲场次
# 股票问题变种
输入正数数组 costs、正数数组 profits、正数 K 和正数 M costs [i] 表示 i 号项目的花费 profits [i] 表示 i 号项目在扣除花费之后还能挣到的钱 (利润) K 表示你只能串行的最多做 k 个项目 M 表示你初始的资金 说明:每做完一个项目,马上获得的收益,可以支持你去做下一个项目,不能并行的做项目。 输出:最后获得的最大钱数