在某一天选择买入一只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
示例 :
输入:[7,1,5,3,6,4] 输出:5 解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
思路: 假设第1天买入,利润为0,第2天的价格减去第1天的价格当大于0时为利润记作$profits,当第二天的价格比第1天的价格低时,买入价格记作$prices[$cur],以此类推。
代码:
class Solution {
function maxProfit($prices) {
$cur = 0;
$profits = 0;
for($i = 1;$i<sizeof($prices);$i++){
$_profits = $prices[$i] - $prices[$cur];
$profits = $_profits > $profits ? $_profits : $profits;
$cur = $prices[$i] < $prices[$cur] ? $i :$cur;
}
return $profits;
}
}
|