题目:买卖股票的最佳时机:

  • 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
  • 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
  • 注意你不能在买入股票前卖出股票。

直接看例子,就知道什么意思:

例子:

输入: [7,1,5,3,6,4]
输出: 5
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
输入: [7,6,4,3,1]
输出: 0
解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。

思路:

这题和**最大子序列的和**挺像的,我们直接看代码

代码:

class Solution:def maxProfit(self,prices):if prices == None or len(prices) == 0:     # 若数组为空,则直接返回0return 0maxprices = 0           # 初始化最大利润为0tmpnum = prices[0]      # 定义随机变量初始值为数组的首元素,即买入股票的价格for i in prices:        # 循环if tmpnum > i:      # 找最小元素,即买入股票的价格tmpnum = i      if i - tmpnum >= 0 and i - tmpnum > maxprices:    # 若利润(i-tmpnum)大于0,并且当前利润大于过去利润,则更新最大利润的值maxprices = i - tmpnumreturn maxprices# 验证
if __name__ == '__main__':solution = Solution()prices = []print(solution.maxProfit(prices))# 输出:[5]

121、买卖股票的最佳时机(python)相关推荐

  1. LeetCode - 121. 买卖股票的最佳时机

    121. 买卖股票的最佳时机 class Solution {public int maxProfit(int[] prices) {if (prices == null || prices.leng ...

  2. LeetCode 121:买卖股票的最佳时机 思考分析

    题目描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润. 注意:你不能在买入股票 ...

  3. leetcode - 121.买卖股票的最佳时机

    121.买卖股票的最佳时机 ------------------------------------------ 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成 ...

  4. 力扣:121. 买卖股票的最佳时机 题解

    力扣:121. 买卖股票的最佳时机 1 题目描述 2 题解 1 题目描述 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格. 你只能选择 某一天 ...

  5. 力扣刷题day42|121买卖股票的最佳时机、122买卖股票的最佳时机II

    文章目录 121. 买卖股票的最佳时机 贪心思路 动态规划思路 动态规划五部曲 122. 买卖股票的最佳时机II 贪心思路 动态规划思路 动态规划五部曲 121. 买卖股票的最佳时机 力扣题目链接 给 ...

  6. 《LeetCode刷题》—121. 买卖股票的最佳时机

    <LeetCode刷题>-121. 买卖股票的最佳时机 一.题目内容 原题连接:https://leetcode.cn/problems/best-time-to-buy-and-sell ...

  7. LeetCode #121 买卖股票的最佳时机 贪心 单调栈 动态规划

    LeetCode #121 买卖股票的最佳时机 题目描述 给定一个数组,它的第 iii 个元素是一支给定股票第 iii 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算 ...

  8. 121. 买卖股票的最佳时机 JavaScript实现

    121. 买卖股票的最佳时机 买卖股票的最佳时机 一.动态规划 股票问题详解 1.状态:有两种状态:持有或者没有股票.每天的状态是其中之一. 2.当天是否持有股票的最大利润 = max ( 前一天是否 ...

  9. 【LeetCode】第1天 - 121.买卖股票的最佳时机

    121.买卖股票的最佳时机 题目描述 解题思路 代码实现 题目描述 解题思路 两次遍历(i, j)价格数组,找出卖出和买入的最大差值(max(prices[j] - prices[i])). i: 0 ...

  10. 代码随想录算法训练营第五十二天_第九章_动态规划 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

    LeetCdoe 121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格. 你只能选择 某一天 买入这只股票,并选择在 未 ...

最新文章

  1. 不需要任何依赖的图片加载错误处理的工具类load-image.js
  2. 名为 cursor_jinserted 的游标不存在_性能优化技巧 - 程序游标
  3. CNN的卷积运算为何使用互相关而不是卷积
  4. mysql对null排序_mysql中null值的排序问题分析_MySQL
  5. 2020CCPC长春
  6. double小数点后最多几位_基金理财买入后,不断亏损,是最多本金亏光,还是会出现负值...
  7. 五、华为鸿蒙HarmonyOS应用开发之Java开发模式下的同一个 Page 里实现页面跳转时无参(有参)传递、回值详解
  8. 2017年对口招生c语言及答案,2017年计算机专业对口考试试卷及答案.doc
  9. matlab Cartesian,Matlab - Standard Deviation of Cartesian Points
  10. innodb_file_per_table 理解
  11. 调度失败:执行器地址为空_三千字带你搞懂XXL-JOB任务调度平台
  12. AMEsim柱塞泵的建模学习
  13. 基于JAVA在线招生系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  14. 小米手机通用面具安装,root获取
  15. 地理编码的概念及作用
  16. 新手建站之【网站备案】③
  17. python视频笔记17(控制窗体)
  18. 切片器可以设置日期格式?_excel神器——切片器
  19. linux 公社资料
  20. Python pandas.DataFrame.combine_first函数方法的使用

热门文章

  1. (转)后监管时代的资本市场,数字金融能否迎来大爆发?
  2. C#:重启后,AssemblyInfo中AssemblyTitle的描述内容显示正常.........
  3. 怎样才能提升代码质量?
  4. Linux基金会宣布行业进一步支持Akraino Edge Stack
  5. 【验证码识别】基于matlab GUI遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含Matlab源码 1694期】
  6. 【数字基带信号】基于matlab数字基带信号波形仿真【含Matlab源码 988期】
  7. 【图像几何】基于matlab GUI图像拉东变换【含Matlab源码 848期】
  8. 【指纹识别】基于matlab GUI指纹识别【含Matlab源码 029期】
  9. pandas中DataFrame的修改元素值、缺失值处理、合并操作的方法
  10. webpack 加载html模板,Webpack:从html模板加载图像