【Golang】LeetCode 121. 买卖股票的最佳时机

121. 买卖股票的最佳时机

题目描述

思路

我们使用贪心来解决这道题目。

题目中已经明确表明,我们只能在某一天i买入股票,并在未来的某一天j卖出,一定满足i<ji \lt ji<j。因此局部最优解就是我们使用一个变量cost来记录当前出现过的prices[i]的最小值,只要满足nums[j] > cost, 那么nums[j] - cost就是一次买卖股票的局部最优解。

全局最优解其实就是nums[j] - cost的最大值。

基于上述思路,我们写代码来解决问题。

Golang 题解

go 复制代码
func maxProfit(prices []int) int {
    curr := prices[0]
    ans := 0
    for i := 1; i < len(prices); i ++ {
        if prices[i] < curr {
            curr = prices[i]
        }
        ans = max(ans, prices[i] - curr)
    }
    return ans
}
相关推荐
NEFU_Jyj4 小时前
牛客周赛R168
算法
文丑颜不良啊11 小时前
LeetCode2221~2240题目解析
java·leetcode
Navigator_Z12 小时前
LeetCode //C - 1317. Convert Integer to the Sum of Two No-Zero Integers
c语言·算法·leetcode
D e re k ZH12 小时前
C++ 标准库算法全景指南
数据结构·c++·算法
冻柠檬飞冰走茶13 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
文丑颜不良啊13 小时前
LeetCode2161~2180题目解析
java·leetcode
雪落漂泊14 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法
文丑颜不良啊15 小时前
LeetCode2141~2160题目解析
java·leetcode
LabVIEW开发15 小时前
LabVIEW 连接板:28 个端子怎么排,优先级怎么定
java·算法·labview