1、题目描述(难度 简单)

样例:

数据范围

2、题目解析

方法一:用两个变量记录当前股票最小价格和,如果当前卖掉的最大利润,然后遍历数组的时候不断更新,最后输出的最大利润则是题目答案。c++代码如下:

class Solution {
public:int maxProfit(vector<int>& prices) {int minprice = int(1e9);    // 当前遇到的最小价格int maxprofit = 0;    // 当前的最大利润for (auto price : prices){maxprofit = max(maxprofit, price - minprice);  // 更新当前最大利润minprice = min(minprice, price);  // 更新当前最小价格}return maxprofit;}
};

方法二:采用dp,动态规划,用一个数组记录当天卖掉能得到的最大利润,dp[i]表示在第i天卖掉的最大获利。dp[i]取值需要看dp[i - 1],有两种情况,情况一,dp[i-1] == 0,表示前一天没有卖或者之前没有买,如果prices[i]>prices[i-1]则dp[i]取差值,否则为0;情况二,也需要比较prices[i]与prices[i-1]的关系。代码如下:

class Solution {
public:int maxProfit(vector<int>& prices) {int max = 0;int dp[100001];    // dp[i]表示在当天卖出的最大收益dp[0] = 0;   // 第一天买第一天卖利润为0for(int i = 1;i < prices.size();++i){if(dp[i - 1] == 0)         // 前面一天没有卖或者前面没有买if(prices[i] > prices[i - 1])dp[i] = prices[i] - prices[i - 1];elsedp[i] = 0;else{    //if(prices[i] > prices[i - 1])dp[i] = dp[i - 1] + prices[i] - prices[i - 1];else{int t = dp[i - 1] - (prices[i - 1] - prices[i]);dp[i] = 0 > t ? 0 : t;}}if(max < dp[i])max = dp[i];}return max;}
};

(题目来源 ledcode官方,本人水平有限,若有误,请评论区多多指教,若有侵权,请联系本人删除)

力扣121题 “买卖股票的最 佳时机”相关推荐

  1. 力扣121题买卖股票的最佳时机 简单容易明白

    博主最近在力扣上做算法题,一天一道,可以跟着我来练习,有啥不会的可以留言,或者不理解力扣上面哪道可以进行留言.有啥不会的题也可以留言,仅限于简单与中等难度的. 愿我们变的越来越好 有啥不明白的评论区留 ...

  2. 《LeetCode力扣练习》第121题 买卖股票的最佳时机 Java

    <LeetCode力扣练习>第121题 买卖股票的最佳时机 Java 一.资源 题目: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价 ...

  3. 买卖股票的最佳时机——力扣121题

    买卖股票的最佳时机--力扣121题 暴力解法 从前往后,不断将元素之间进行两两比较(类似冒泡排序中),然后不断更新出maxProfit的值.例如数组[7,1,5,3,6,4]中,从7开始,则7 -&g ...

  4. 力扣-309最佳买卖股票时机含冷冻期(dp)

    力扣-309最佳买卖股票时机含冷冻期 1.题目 309. 最佳买卖股票时机含冷冻期 给定一个整数数组prices,其中第 prices[i] 表示第i天的股票价格 . 设计一个算法计算出最大利润.在满 ...

  5. 力扣 -- 309. 最佳买卖股票时机含冷冻期

    题目链接:309. 最佳买卖股票时机含冷冻期 - 力扣(LeetCode) 下面是用动态规划的思想解决这道题的过程,相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴. 参考代码: class Sol ...

  6. (dp) 力扣309. 最佳买卖股票时机含冷冻期 思路

    题目链接309. 最佳买卖股票时机含冷冻期 这一题的思路是在原本买卖股票的基础上添加一个冷冻期,即为修改dp条件.先贴出代码: class Solution {public:int maxProfit ...

  7. LeetCode简单题之买卖股票的最‭佳时机

    题目 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格. 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票.设计一个 ...

  8. 买卖股票的zui佳时机

    1.买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格,只能选择 某一天 买入这只股票,并选择在未来的某一个不同的日子 卖出该股 ...

  9. ​ leetcode 714. 买卖股票的最 佳时机含手续费 medium ​

    leetcode 714. 买卖股票的最佳时机含手续费   medium 题目描述: 解题思路: 手续费,可以在买入扣,也可以在卖出的时候扣,只不过应该是第0天初始化,而不再是第-1天.否则可能值越界 ...

最新文章

  1. 2014目标!!!!
  2. 2022年跨境卖家如何布局海外市场?东南亚“钱”景可观
  3. linux 硬软链接区别
  4. Googletest 实现简要分析
  5. linux-shell命令之mount【挂载命令】
  6. [蓝桥杯]字符串对比-模拟
  7. C/C++ ltoa函数 - C语言零基础入门教程
  8. tina中信号带宽_如何评测示波器带宽
  9. Python练习:百分制到五级制的转换
  10. 008_MAC 终端使用技巧
  11. LayaAir HttpRequest 网络访问
  12. ssh 遍历IPS 进行连接
  13. 利用键盘钩子捕捉linux键盘动作,利用键盘钩子捕获Windows键盘动作
  14. 关于mac 和其它osx系统添加 微软雅黑字体 适用于安装字体报错或者安装失败
  15. win10虚拟机下载安装流程
  16. 计算机公式与函数乘法,excel里减法函数是哪个?-excel函数公式乘法
  17. 如何免费下载论文资料
  18. Win10应用设计的那些事儿
  19. 利用FILTER特性优化SQL
  20. 手把手教你快应用接入微信H5网页支付

热门文章

  1. 浅析微服务架构应该在什么时候采用
  2. 把 14 亿中国人都拉到一个微信群,程序员在技术上能实现吗?
  3. SQL 使用别名(使用 AS 关键字)
  4. 关于学习的一些网站(自用)
  5. java根据内容生成二维码
  6. 用于食品标签的光学字符识别(OCR)视觉系统
  7. activity组任务使用
  8. 资料员报考建筑八大员报考建筑资料员工程竣工资料整理的举措
  9. QLU ACM2018新生赛
  10. 快速阶乘算法python_python实现N阶乘的算法