【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
}
相关推荐
IT方大同几秒前
C语言分支与循环语句
c语言·开发语言·算法
待磨的钝刨35 分钟前
深入理解主成分分析(PCA)
人工智能·线性代数·算法·机器学习
geovindu2 小时前
java: Backtracking Algorithm
java·开发语言·windows·后端·算法·回溯算法
晚风叙码2 小时前
C++ vector底层模拟实现与迭代器失效深度剖析
c++·算法
To_OC10 小时前
LC 51 N 皇后:我以为难的是回溯,结果栽在了对角线下标
javascript·算法·leetcode
2401_8414956411 小时前
【操作系统】进程同步与互斥实验报告
c++·算法·操作系统·进程·并发·同步·互斥
爱刷碗的苏泓舒15 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
烬羽18 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法
闪电悠米18 小时前
力扣hot100-41.缺失的第一个正数-原地哈希详解
数据结构·算法·哈希算法