【一】 Greedy(贪心)
贪心法,又称贪心算法,贪婪算法:在对问题求解时,总是做出在当前看来是最好的选择,目光短浅
- 适用场景:问题能够分解成 子问题 来解决,子问题的最优解能递推到最终问题的最优解。这种子问题最优解称为最优子结构。
- 贪心算法 与 动态规划 的不同在于,它对每个子问题的解决方案都做出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。
【二】 Interview(面试题)
【2.1】 LeetCode 122:Buy / Sell Stocks(买卖股票的最佳时机)
题目说明:最多持有 1 股,每天可以买卖无数次,无交易手续费。这里不写代码了,很简单。
Input: [ 7, 1, 5, 3, 6, 4 ]
Output: 7(1买进,5卖出,3买进,6卖出)
Input: [ 1, 2, 3, 4, 5 ]
Output: 4(1买进,2卖出后买进,3卖出后买进,4卖出后买进,5卖出)
Input: [ 7, 6, 3, 2 ]
Output: 0(空仓,不操作)