当前位置: 首页 > news >正文

208.贪心算法:买卖股票的最佳时机||(力扣)

代码解决

class Solution {
public:int maxProfit(vector<int>& prices) {int result = 0; // 初始化结果为0,表示初始利润为0// 从第二天开始遍历价格数组for (int i = 1; i < prices.size(); i++) {// 如果当天价格比前一天价格高,则将差价加入到结果中result += max(0, prices[i] - prices[i - 1]);}return result; // 返回最终的最大利润}
};

代码解释

  1. 初始化

    • result 初始化为0,用于存储累积的最大利润。
  2. 遍历价格数组

    • 从第二天开始(即 i=1),遍历价格数组 prices
    • 对于每一天 i,比较当天的价格 prices[i] 和前一天的价格 prices[i-1]
    • 如果当天的价格高于前一天的价格,即 prices[i] > prices[i-1],则计算这两天的差价 prices[i] - prices[i-1] 并将其加入到 result 中。否则,差价为负数或零,不进行任何操作。
  3. 返回结果

    • 返回 result,即通过在每个上涨的时段进行买卖得到的最大利润。

示例

假设有一个价格数组 prices = [7,1,5,3,6,4]

  • 第1天到第2天:1 - 7 = -6,不加到利润中。
  • 第2天到第3天:5 - 1 = 4,加到利润中,result = 4
  • 第3天到第4天:3 - 5 = -2,不加到利润中。
  • 第4天到第5天:6 - 3 = 3,加到利润中,result = 4 + 3 = 7
  • 第5天到第6天:4 - 6 = -2,不加到利润中。

最终,result = 7,表示最大利润为7。

时间和空间复杂度

  • 时间复杂度:O(n),其中 n 是价格数组的长度。算法仅需遍历一次价格数组。
  • 空间复杂度:O(1),只使用了常数空间来存储变量 result
http://www.lryc.cn/news/389158.html

相关文章:

  • 【论文阅读】伸缩密度比估计:Telescoping Density-Ratio Estimation
  • MongoDB数据库 MQL (MongoDB Query Language)语句大全
  • Java代码基础算法练习-计算平均身高-2024.07.02
  • BIOS设置与系统分区
  • linux的安装程序 与 文件 相关的命令
  • SAP_ABAP相关日语单词
  • Python中的除法操作详解
  • 第1章 人工智能的基础概念与应用导论
  • jenkins api部署时,一直提示pending-Finished waiting
  • AI在创造还是毁掉音乐之论文
  • C++ STL容器:序列式容器-数组string,vector,array,bitset
  • ElementUI样式优化:el-input修改样式、el-table 修改表头样式、斑马格样式、修改滚动条样式、
  • 大数据面试题之Spark(6)
  • SpringSecurity中文文档(Servlet Anonymous Authentication)
  • 【Spring Boot 事务管理】
  • 【C++】C++指针在线程中调用与受保护内存空间读取方法
  • 安全隔离上网的有效途径:沙箱
  • jenkins下后台运行链接Jenkins服务脚本方法
  • 宠物空气净化器哪个品牌性价比高?宠物空气净器Top3品牌推荐
  • 苏州大厂面试题JAVA 面试集
  • 数据库取出来的日期格式是数组格式,序列化日期格式
  • 【Android】创建一个可以在屏幕上拖动的悬浮窗
  • SPI NAND、SD NAND和eMMC对比—MK米客方德
  • “深入解析:YUM仓库、RPM包与源码编译——Linux软件安装方式全面对比“
  • 中电金信:银行业私有云何去何从
  • Adobe Acrobat Pro或者Adobe Acrobat Reader取消多标签页显示,设置打开一个pdf文件对应一个窗口。
  • 从0开始学习pyspark--pyspark的数据读取[第4节]
  • 极速升级:MacOS系统中Pip源的切换指南
  • 服务器的分类,主流服务器的应用场景
  • Objects and Classes (对象和类)