贪心算法
适用条件:
1.问题能被分解为子问题
2.子问题能递推到最终问题
3.子问题的最优解成为最优子结构
与动态规划的区别:
贪心算法:不能回退
动态规划:会保存以前的运算结果,根据以前的结果对当前进行选择,有回退功能
例题:买卖股票最佳时机
持有1股,买卖无数次
1.深度优先搜索,每一步两个操作,买1股卖1股,O(2^n)
2.贪心算法:每天进行比较操作(无交易手续费)O(n)
3.动态规划:记录每一天之前的状态,后续继续讲O(n)
适用条件:
1.问题能被分解为子问题
2.子问题能递推到最终问题
3.子问题的最优解成为最优子结构
与动态规划的区别:
贪心算法:不能回退
动态规划:会保存以前的运算结果,根据以前的结果对当前进行选择,有回退功能
例题:买卖股票最佳时机
持有1股,买卖无数次
1.深度优先搜索,每一步两个操作,买1股卖1股,O(2^n)
2.贪心算法:每天进行比较操作(无交易手续费)O(n)
3.动态规划:记录每一天之前的状态,后续继续讲O(n)