题目描述
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
1,双指针法,big,smal
当p[smal]>p[big],就将smal=big并继续执行直到big=len§
用t来储存差值最大的数
代码示例
func maxProfit(prices []int) int {
t := 0
for smal, big := 0, 1; big < len(prices); big++ {
if prices[smal] > prices[big] {
smal = big
} else if prices[big]-prices[smal] > t {
t = prices[big] - prices[smal]
}
}
return t
}
执行结果
更多
更多解决方法请参考:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/solution/