算法:贪心算法与二分查找-理论与实战

本文探讨了贪心算法与二分查找的概念及其应用。贪心算法通过局部最优解寻求全局最优,但并不总是能得到最佳结果。以兑换零钱为例说明其局限性。在LeetCode的122题中,贪心策略也可用于买卖股票问题。二分查找则是一种高效搜索算法,要求数据有序。在LeetCode的平方根求解问题中展示了二分查找的适用性。文章还介绍了二分查找的递归通用写法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

贪心算法

leetcode122:买卖股票的最佳时机 II

二分查找

leetcode:求69X的平方根

二分查找的递归通用写法


贪心算法

概念:是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择。

贪心算法在有最优子结构的问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。简单地说,问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。

例子:兑换零钱

对于兑换36元的零钱,也就是找36的子结构最优解,贪心算法会按照20>10>5>1这个方式进行。

我们把金额和面值都改一下,面值为10 6 1 ,兑换金额为13  。

按照贪心算法,会选择第一种,我们知道第二种才是最优的。

但是我们看问题更多的是从整体到细节,局部的最优解组合起来成为整体的最优解,这样的情况是很少的,所以也意味着贪心算法的适用情况是很少的。因为贪心算法一般没有测试所有可能的解。贪心法容易过早做决定,因而没法达到最佳解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值