代码随想录训练营Day48
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、买卖股票的最佳时机4
- 二、买卖股票的最佳时机含冷冻期
- 三、买卖股票含手续费
前言
提示:这里可以添加本文要记录的大概内容:
今天是跟着代码随想录刷题的第48天,主要学习了买卖股票的最佳时机4,买卖股票冷静期,买卖股票含手续费
提示:以下是本篇文章正文内容,下面案例可供参考
一、买卖股票的最佳时机4
思路:这道题和买卖股票3很像,主要就是找规律,可以买卖k次,用循环来赋值就好了
class Solution {
public:int maxProfit(int k, vector<int>& prices) {vector<vector<int>> dp(prices.size(),vector<int>(2*k));for(int j=0;j<2*k;j++){if(j%2==0) dp[0][j]=-prices[0];else dp[0][j]=0;}for(int i=1;i<prices.size();i++){for(int j=0;j<2*k;j++){if(j==0){dp[i][0]=max(dp[i-1][0],-prices[i]);//今天不持股,保持了昨天也不持或者昨天持股,今天卖了}if(j!=0&&j%2==0){dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]-prices[i]);}if(j%2==1){dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]+prices[i]);}}}int max1=INT_MIN;for(int j=0;j<2*k;j++){max1=max(dp[prices.size()-1][j],max1);}return max1;}
};
二、买卖股票的最佳时机含冷冻期
思路:代码里注释的有,就是要多细分几种情况
class Solution {
public:int maxProfit(vector<int>& prices) {vector<vector<int>> dp(prices.size(),vector<int>(4));//dp[i][0]是第i天不持有股但不是刚卖的,也不在冷冻期最多有多少钱,dp[i][1]是第i天持有股但是不是当天买最多有多少钱,dp[i][2]是第i天在冷冻期最多有多少钱,dp[i][3]是指今天就卖股票最多有多少钱dp[0][0]=0;dp[0][1]=-prices[0];dp[0][2]=0;//考虑第0天,买了又卖就是冷冻期dp[0][3]=0;for(int i=1;i<prices.size();i++){dp[i][0]=max(dp[i-1][0],dp[i-1][2]);//今天不持股,不是刚卖的,且不在冷冻期,保持了昨天不在冷冻期,或者昨天在冷冻期dp[i][1]=max(max(dp[i-1][1],dp[i][0]-prices[i]),dp[i][2]-prices[i]);//今天持股,保持的昨天持股,或者今天刚买的,但是在非冷冻期才买的dp[i][2]=dp[i-1][3];//今天是冷冻期,说明昨天刚卖dp[i][3]=dp[i-1][1]+prices[i];//今天卖股票,昨天一定持有股票}return max(max(max(dp[prices.size()-1][0],dp[prices.size()-1][1]),dp[prices.size()-1][2]),dp[prices.size()-1][3]);}
};
三、买卖股票含手续费
思路:和买卖股票2的代码基本上一样,就是要减去手续费就行了,很简单
class Solution {
public:int maxProfit(vector<int>& prices, int fee) {vector<vector<int>> dp(prices.size(),vector<int>(2));//dp[i][0]是第i天不持有股最多有多少钱,dp[i][1]是第i天持有股最多有多少钱dp[0][0]=0;dp[0][1]=-prices[0];for(int i=1;i<prices.size();i++){dp[i][0]=max(dp[i-1][0],dp[i-1][1]+prices[i]-fee);//今天不持股,保持了昨天也不持或者昨天持股,今天卖了dp[i][1]=max(dp[i-1][1],dp[i-1][0]-prices[i]);//今天持股,保持的昨天持股,或者今天刚买的,但是这种情况是昨天不持股的价格减去今天购买的价格}return max(dp[prices.size()-1][0],dp[prices.size()-1][1]);}
};相关文章:
代码随想录训练营Day48
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、买卖股票的最佳时机4二、买卖股票的最佳时机含冷冻期三、买卖股票含手续费 前言 提示:这里可以添加本文要记录的大概内容: 今天是…...
React进阶(五):导航守卫_renderroutes
在《React进阶(四):路由介绍》博文中,介绍了React路由相关知识,在实际项目开发过程中,路由之间的跳转必定涉及权限、用户是否登陆等限定条件的判定,故需要导航守卫来完成这一事项。 在实现reac…...
Python基础系列教程:从零开始学习Python
Python有很多功能强大的机器学习和大数据分析包,适合对大数据和人工智能感兴趣的同学学习。要想了解一门语言,首先需要了解它的语法。本文将介绍Python的一些基础语法,包括数据类型、变量类型、条件控制、循环结构等内容。废话少说࿰…...
deepl翻译的PDF文档保护密码解除
1、首先将后缀名(.docx)修改为压缩包格式(.zip)。 2、修改解密word加密.py里zip的位置,和新生成的zip的位置和名称 import zipfile import xml.etree.ElementTree as ET import os import shutil# 定义文件路径 zip_file_path rC:\Users\Administrator\Desktop\新…...
LeetCode 算法:二叉树的直径 c++
原题链接🔗:二叉树的直径 难度:简单⭐️ 题目 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由…...
盘立方期货Kdj幅图指标公式源码
盘立方期货Kdj幅图指标公式源码: N:250; WR1:100-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N)),DOT,COLORLIGHTGREEN; EW:EMA(WR1,5); STICKLINE(WR1<20,WR1,20,1,0),COLORYELLOW; STICKLINE(WR1>80,WR1,80,1,0),COLORYELLOW; RSV:(CLOSE-LLV(LOW…...
SkyWalking 极简入门
1. 概述 1.1 概念 SkyWalking 是什么? FROM Apache SkyWalking 分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。 提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体…...
本篇内容:ArkTS开发系列之事件(2.8.1触屏、键鼠、焦点事件)
上篇回顾: ArkTS开发系列之导航 (2.7动画) 本篇内容:ArkTS开发系列之事件(2.8.1触屏、键鼠、焦点事件) 一、知识储备 1. 触屏事件:包括点击事件、拖拽事件、触摸事件。 点击事件 Button()....onClick(…...
测试的基础知识大全【测试概念、分类、模型、流程、测试用例书写、用例设计、Bug、基础功能测试实战】
测试基础笔记 Day01阶段⽬标⼀、测试介绍⼆、测试常⽤分类2.1 阶段划分单元测试集成测试系统测试验收测试 2.2 代码可⻅度划分⿊盒测试:主要针对功能(阶段划分->系统测试)灰盒测试:针对接⼝测试(阶段划分->集成测…...
Power Apps
目录 一、引言1、Power Apps2、应用场景3、Power Apps的优势与前景4、补充 二、数据源介绍1、SharePoint2、Excel3、Dataverse4、SQL5、补充(1)OneDrive 三、Power Apps应用类型1、画布应用2、模型驱动应用3、网站 Power Pages 四、Power Automate五、Po…...
qt图像处理-将OpenCV的cv::Mat类型转换为QImage类型
在使用Qt进行图像处理时,经常需要将OpenCV的cv::Mat类型转换为QImage类型。以下是几种有效的方法,可以根据具体情况选择合适的方法进行转换。 方法一:直接使用QImage构造函数 这种方法直接使用QImage的构造函数,通过传递cv::Mat的指针和相关参数来创建QImage对象。这种方…...
代码随想录训练营第十八天 530二叉搜索树的最小绝对差 501二叉搜索树中的众数 236二叉树的最近公共祖先
第一题: 原题链接:530. 二叉搜索树的最小绝对差 - 力扣(LeetCode) 思路: 使用中序遍历的方式:左中右。 定义一个pre节点来存放当前节点的前一个节点。 在中序的时候处理递归逻辑: 首先先向…...
微信小程序之横向列表展示
效果图 参考微信小程序可看 代码: <view class"lbtClass"><view class"swiper-container"><scroll-view class"swiper" scroll-x"true" :scroll-left"scrollLeft"><block v-for"(six…...
无人机巡检小羊仿真
详细视频地址 仿真效果 可视化三维仿真 gazebo物理仿真 px4 飞控仿真 仿qgc简易地面站 详细视频地址...
springboot redission 分布式锁
Spring Boot中使用Redisson实现分布式锁的方法如下: 1. 首先,需要在项目中引入Redisson依赖。在pom.xml文件中添加以下依赖: xml <dependency> <groupId>org.redisson</groupId> <artifactId>redisson<…...
Vuex中的重要核心属性
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 Vuex 的核心属性包括: State: State 是 Vuex 存储数据的地方,类似于组件中的 data。它…...
Redis哨兵集群搭建
一、安装Redis 1.安装依赖 yum install -y gcc tcl2.将Redis压缩包解压到对应的目录 tar -zxvf redis-2.8.0.tar.gz mv redis-2.8.0 /usr/local3.编译 cd /usr/local/redis-2.8.0 make && make install4.配置redis.conf # 任意ip都可以访问 bind 0.0.0.0 # 关闭保…...
网络爬虫requests库使用指南
目录 引言 安装requests库 基本用法 发送GET请求 发送POST请求 处理请求头和Cookies 设置请求头 使用Cookies 会话管理 异常处理 流式上传和下载 结语 引言 在Python中进行HTTP请求时,requests库是一个强大且易于使用的第三方库。它允许你发送各种HTTP请…...
VSCODE 配置C++ 与OPENCV
主要是两个json设置 c_cpp_properties.json {"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],&qu…...
C语言小例程28/100
题目:利用递归方法求5!。 程序分析:递归公式:fnfn_1*4! #include <stdio.h>int main() {int i;int fact(int);for(i0;i<6;i){printf("%d!%d\n",i,fact(i));} } int fact(int j) {int sum;if(j0){sum1;} else {sumj*fac…...
Keil MDK Debug 命令行常用命令
适用:Keil MDK-ARM (uVision5),进入 Debug 模式后,下方的 Command 窗口或 View → Command Window 打开。一、断点管理 (BKPT / BS / BL) 硬件断点 (Breakpoint Set) BS <func> ; 在函数入口设断点 BS <func&…...
回流平台深耕闲置翡翠流通,以数字化服务激活珠宝产业新动能
据中国珠宝玉石首饰行业协会数据,我国珠宝玉石首饰产业市场规模持续扩大,翡翠玉石作为第二大珠宝消费品类,市场存量可观。与此同时,发达国家二手高端消费品交易占整个高端消费品市场的20%至30%,我国目前占比约5%&#…...
掌握CRC32校验码:从基础计算到高级逆向操作的完整指南
掌握CRC32校验码:从基础计算到高级逆向操作的完整指南 【免费下载链接】crc32 CRC32 tools: reverse, undo/rewind, and calculate hashes 项目地址: https://gitcode.com/gh_mirrors/cr/crc32 你是否曾遇到过需要验证文件完整性,却不知道如何下手…...
MPLAB Harmony框架实战:从驱动抽象到复杂嵌入式系统开发
1. 项目概述:为什么我们需要 Harmony?如果你在嵌入式开发领域摸爬滚打超过五年,尤其是深度使用过 Microchip 的 PIC32 系列 MCU,那你一定对“从零开始搭驱动”这件事深恶痛绝。我还记得十年前,为了在 PIC32MX 上跑通一…...
Cadence Allegro自定义快捷键全攻略:从env文件到Skill脚本
1. 项目概述:为什么我们需要自定义快捷键?如果你是一名电子工程师,或者经常使用Cadence Allegro进行PCB设计,那么对软件自带的默认快捷键一定又爱又恨。爱的是,它确实提供了一些基础的操作加速;恨的是&…...
现代安全监控系统构建指南:从IPVS架构到智能分析实战
1. 项目概述:从“想要”到“拥有”,安全监控系统的核心价值“安华高科技给你想要的安全监控系统!”——这个标题听起来像是一句承诺,但背后其实是一个复杂的系统工程。作为一名在安防行业摸爬滚打了十几年的从业者,我见…...
免费解锁Adobe全家桶!Adobe GenP 3.0终极指南让你告别订阅费
免费解锁Adobe全家桶!Adobe GenP 3.0终极指南让你告别订阅费 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 还在为Adobe Creative Cloud的高昂订阅费用…...
视觉暂留与嵌入式编程:打造动态LED光影艺术装置
1. 项目概述:当LED阵列在空中“作画”如果你见过夜晚挥舞的LED光剑在空中留下绚烂的图案,或者火舞者手中的Poi(火球)划出复杂的光轨,那么你已经亲眼目睹了动态成像(Kinetic Persistence of Vision, Kinetic…...
1 个开发技巧,餐饮小程序加载速度飙升 70%
对于餐饮小程序而言,加载速度直接决定用户留存——据调研,用户打开小程序后,若加载时间超过3秒,流失率会高达80%。很多餐饮门店的小程序,明明功能完善、设计美观,却因为加载缓慢,导致用户刚打开…...
产品质量总是不稳?问题可能出在这五个地方
你厂里是不是也有这类难题?投入不少钱买设备、招人手,产品质量却始终上不去。不良品率高、批量出问题、客户投诉退货,甚至找不到问题根源。今天我就来聊聊质量上不去的几个原因,大家可对照自查。一、问题可能出现在生产之前看到质…...
