122. 买卖股票的最佳时机 II


思路

prices.append(0) 预防[1,2,3,4,5]情况

假设dp代表当天卖出的利润

v代表最大利润

mins代表买入的最小价格

卖出最大利润的情况:当天卖出比前一天卖出利润小,说明前一天就是卖出的最好时期,前一天卖出 : 则今天就是购买的日期 ,买入最小价格必然是今天(新一轮的查找卖出最大利润),则今天买、卖,利润为0

python 复制代码
class Solution(object):
    def maxProfit(self, prices):
        """
        :type prices: List[int]
        :rtype: int
        """
        if len(prices)<=1:
            return 0
        prices.append(0)
        dp=[0]*len(prices)
        dp[0],mins=0,prices[0]
        v=0
        for i in range(1, len(prices)):
            mins = min(mins, prices[i])
            if prices[i] - mins <dp[i - 1]:
                v += dp[i - 1]
                mins = prices[i]
            dp[i] = prices[i] - mins
        return v
相关推荐
Data_agent4 分钟前
Python 编程实战:函数与模块化编程及内置模块探索
开发语言·python
十铭忘6 分钟前
windows系统python开源项目环境配置1
人工智能·python
Generalzy23 分钟前
langchain deepagent框架
人工智能·python·langchain
栈与堆29 分钟前
LeetCode 19 - 删除链表的倒数第N个节点
java·开发语言·数据结构·python·算法·leetcode·链表
万行1 小时前
机器学习&第二章线性回归
人工智能·python·机器学习·线性回归
nervermore9901 小时前
3.3 Python图形编程
python
zhengfei6111 小时前
世界各地免费电视频道的 M3U 播放列表。
python
心静财富之门1 小时前
退出 for 循环,break和continue 语句
开发语言·python
WJSKad12352 小时前
YOLO11-FDPN-DASI实现羽毛球拍与球的实时检测与识别研究
python
幻云20102 小时前
Next.js之道:从入门到精通
人工智能·python