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

leetcode刷题

买卖股票的最佳时机III

其实类似,只是dp数组的状态又多了几种情况而已。

(本来我自己的想法是设置数组的长度是3,代表不持有,第一次持有,第二次持有,还有尝试不知道对不对)

int maxProfit(vector<int>& prices) {vector<vector<int>> dp(prices.size(), vector<int> (5));dp[0][0] = 0;dp[0][1] = -prices[0];dp[0][2] = 0;dp[0][3] = -prices[0];dp[0][4] = 0;for(int i = 1; i < prices.size(); i++){dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] - prices[i]);dp[i][2] = max(dp[i - 1][2], dp[i - 1][1] + prices[i]);dp[i][3] = max(dp[i - 1][3], dp[i - 1][2] - prices[i]);dp[i][4] = max(dp[i - 1][4], dp[i - 1][3] + prices[i]);}return max(max(dp[prices.size() - 1][2], dp[prices.size() - 1][0]), dp[prices.size() - 1][4]);}

买卖股票的最佳时机IV

和上一题差不多,进一步扩充了数组的维度而已。

int maxProfit(int k, vector<int>& prices) {vector<vector<int>>  dp(prices.size(), vector<int> (2*k + 1));for(int i = 0; i < 2*k + 1; i++){if(i % 2 == 0){dp[0][i] = 0;}else{dp[0][i] = -prices[0];}}for(int i = 1; i < prices.size(); i++){for(int j = 1; j <= 2*k; j++){if(j % 2 == 1){dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1] - prices[i]);}else{dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1] + prices[i]);}}}int result = dp[prices.size() - 1][1];for(int j = 1; j <= 2*k; j++){if(dp[prices.size() - 1][j] >= result)result = dp[prices.size() - 1][j];}return result;}

相关文章:

  • 数据库连接项目
  • 池的概念以及数据库连接池 Druid
  • 深入理解 Mysql 分层架构:从存储引擎到查询优化器的内部机制解析
  • 1738. 找出第 K 大的异或坐标值
  • 嵌入式进阶——舵机控制PWM
  • 辐射度技术在AI去衣中的魅力与科学
  • 基于长短期记忆网络 LSTM 的送餐时间预测
  • 1960-2022年世界银行WDI面板数据(1400+指标)
  • 论文阅读--ActionCLIP
  • Leetcode.560.和为k的子数组
  • python基础(1) -- 基本数据类型与变量
  • SQL Server--死锁
  • SDK——如何快速上手一个接口驱动任务(以iic为例)
  • 基于springboot+vue的4S店车辆管理系统
  • vulnhub靶场之FunBox-8
  • hexo+github搭建个人博客
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • CSS实用技巧干货
  • Fastjson的基本使用方法大全
  • golang中接口赋值与方法集
  • HashMap ConcurrentHashMap
  • HTTP中GET与POST的区别 99%的错误认识
  • java第三方包学习之lombok
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • java正则表式的使用
  • leetcode-27. Remove Element
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 从0到1:PostCSS 插件开发最佳实践
  • 电商搜索引擎的架构设计和性能优化
  • 使用 @font-face
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 探索 JS 中的模块化
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • HanLP分词命名实体提取详解
  • MPAndroidChart 教程:Y轴 YAxis
  • ​浅谈 Linux 中的 core dump 分析方法
  • # 计算机视觉入门
  • #### go map 底层结构 ####
  • (1)Hilt的基本概念和使用
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (C++)八皇后问题
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (第二周)效能测试
  • (回溯) LeetCode 77. 组合
  • (十) 初识 Docker file
  • (五)c52学习之旅-静态数码管
  • (转)关于pipe()的详细解析
  • ..回顾17,展望18
  • ./和../以及/和~之间的区别
  • .md即markdown文件的基本常用编写语法
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET+WPF 桌面快速启动工具 GeekDesk