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

代码随想录训练营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

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、买卖股票的最佳时机4二、买卖股票的最佳时机含冷冻期三、买卖股票含手续费 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 今天是…...

React进阶(五):导航守卫_renderroutes

在《React进阶&#xff08;四&#xff09;&#xff1a;路由介绍》博文中&#xff0c;介绍了React路由相关知识&#xff0c;在实际项目开发过程中&#xff0c;路由之间的跳转必定涉及权限、用户是否登陆等限定条件的判定&#xff0c;故需要导航守卫来完成这一事项。 在实现reac…...

Python基础系列教程:从零开始学习Python

Python有很多功能强大的机器学习和大数据分析包&#xff0c;适合对大数据和人工智能感兴趣的同学学习。要想了解一门语言&#xff0c;首先需要了解它的语法。本文将介绍Python的一些基础语法&#xff0c;包括数据类型、变量类型、条件控制、循环结构等内容。废话少说&#xff0…...

deepl翻译的PDF文档保护密码解除

1、首先将后缀名(.docx)修改为压缩包格式(.zip)。 2、修改解密word加密.py里zip的位置&#xff0c;和新生成的zip的位置和名称 import zipfile import xml.etree.ElementTree as ET import os import shutil# 定义文件路径 zip_file_path rC:\Users\Administrator\Desktop\新…...

LeetCode 算法:二叉树的直径 c++

原题链接&#x1f517;&#xff1a;二叉树的直径 难度&#xff1a;简单⭐️ 题目 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由…...

盘立方期货Kdj幅图指标公式源码

盘立方期货Kdj幅图指标公式源码&#xff1a; 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 是什么&#xff1f; FROM Apache SkyWalking 分布式系统的应用程序性能监视工具&#xff0c;专为微服务、云原生架构和基于容器&#xff08;Docker、K8s、Mesos&#xff09;架构而设计。 提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体…...

本篇内容:ArkTS开发系列之事件(2.8.1触屏、键鼠、焦点事件)

上篇回顾&#xff1a; ArkTS开发系列之导航 (2.7动画&#xff09; 本篇内容&#xff1a;ArkTS开发系列之事件&#xff08;2.8.1触屏、键鼠、焦点事件&#xff09; 一、知识储备 1. 触屏事件&#xff1a;包括点击事件、拖拽事件、触摸事件。 点击事件 Button()....onClick(…...

测试的基础知识大全【测试概念、分类、模型、流程、测试用例书写、用例设计、Bug、基础功能测试实战】

测试基础笔记 Day01阶段⽬标⼀、测试介绍⼆、测试常⽤分类2.1 阶段划分单元测试集成测试系统测试验收测试 2.2 代码可⻅度划分⿊盒测试&#xff1a;主要针对功能&#xff08;阶段划分->系统测试&#xff09;灰盒测试&#xff1a;针对接⼝测试&#xff08;阶段划分->集成测…...

Power Apps

目录 一、引言1、Power Apps2、应用场景3、Power Apps的优势与前景4、补充 二、数据源介绍1、SharePoint2、Excel3、Dataverse4、SQL5、补充&#xff08;1&#xff09;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二叉树的最近公共祖先

第一题&#xff1a; 原题链接&#xff1a;530. 二叉搜索树的最小绝对差 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 使用中序遍历的方式&#xff1a;左中右。 定义一个pre节点来存放当前节点的前一个节点。 在中序的时候处理递归逻辑&#xff1a; 首先先向…...

微信小程序之横向列表展示

效果图 参考微信小程序可看 代码&#xff1a; <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实现分布式锁的方法如下&#xff1a; 1. 首先&#xff0c;需要在项目中引入Redisson依赖。在pom.xml文件中添加以下依赖&#xff1a; xml <dependency> <groupId>org.redisson</groupId> <artifactId>redisson<…...

Vuex中的重要核心属性

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 Vuex 的核心属性包括&#xff1a; State: State 是 Vuex 存储数据的地方&#xff0c;类似于组件中的 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请求时&#xff0c;requests库是一个强大且易于使用的第三方库。它允许你发送各种HTTP请…...

VSCODE 配置C++ 与OPENCV

主要是两个json设置 c_cpp_properties.json {"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],&qu…...

C语言小例程28/100

题目&#xff1a;利用递归方法求5!。 程序分析&#xff1a;递归公式&#xff1a;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 命令行常用命令

适用&#xff1a;Keil MDK-ARM (uVision5)&#xff0c;进入 Debug 模式后&#xff0c;下方的 Command 窗口或 View → Command Window 打开。一、断点管理 (BKPT / BS / BL) 硬件断点 (Breakpoint Set) BS <func> ; 在函数入口设断点 BS <func&…...

回流平台深耕闲置翡翠流通,以数字化服务激活珠宝产业新动能

据中国珠宝玉石首饰行业协会数据&#xff0c;我国珠宝玉石首饰产业市场规模持续扩大&#xff0c;翡翠玉石作为第二大珠宝消费品类&#xff0c;市场存量可观。与此同时&#xff0c;发达国家二手高端消费品交易占整个高端消费品市场的20%至30%&#xff0c;我国目前占比约5%&#…...

掌握CRC32校验码:从基础计算到高级逆向操作的完整指南

掌握CRC32校验码&#xff1a;从基础计算到高级逆向操作的完整指南 【免费下载链接】crc32 CRC32 tools: reverse, undo/rewind, and calculate hashes 项目地址: https://gitcode.com/gh_mirrors/cr/crc32 你是否曾遇到过需要验证文件完整性&#xff0c;却不知道如何下手…...

MPLAB Harmony框架实战:从驱动抽象到复杂嵌入式系统开发

1. 项目概述&#xff1a;为什么我们需要 Harmony&#xff1f;如果你在嵌入式开发领域摸爬滚打超过五年&#xff0c;尤其是深度使用过 Microchip 的 PIC32 系列 MCU&#xff0c;那你一定对“从零开始搭驱动”这件事深恶痛绝。我还记得十年前&#xff0c;为了在 PIC32MX 上跑通一…...

Cadence Allegro自定义快捷键全攻略:从env文件到Skill脚本

1. 项目概述&#xff1a;为什么我们需要自定义快捷键&#xff1f;如果你是一名电子工程师&#xff0c;或者经常使用Cadence Allegro进行PCB设计&#xff0c;那么对软件自带的默认快捷键一定又爱又恨。爱的是&#xff0c;它确实提供了一些基础的操作加速&#xff1b;恨的是&…...

现代安全监控系统构建指南:从IPVS架构到智能分析实战

1. 项目概述&#xff1a;从“想要”到“拥有”&#xff0c;安全监控系统的核心价值“安华高科技给你想要的安全监控系统&#xff01;”——这个标题听起来像是一句承诺&#xff0c;但背后其实是一个复杂的系统工程。作为一名在安防行业摸爬滚打了十几年的从业者&#xff0c;我见…...

免费解锁Adobe全家桶!Adobe GenP 3.0终极指南让你告别订阅费

免费解锁Adobe全家桶&#xff01;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. 项目概述&#xff1a;当LED阵列在空中“作画”如果你见过夜晚挥舞的LED光剑在空中留下绚烂的图案&#xff0c;或者火舞者手中的Poi&#xff08;火球&#xff09;划出复杂的光轨&#xff0c;那么你已经亲眼目睹了动态成像&#xff08;Kinetic Persistence of Vision, Kinetic…...

1 个开发技巧,餐饮小程序加载速度飙升 70%

对于餐饮小程序而言&#xff0c;加载速度直接决定用户留存——据调研&#xff0c;用户打开小程序后&#xff0c;若加载时间超过3秒&#xff0c;流失率会高达80%。很多餐饮门店的小程序&#xff0c;明明功能完善、设计美观&#xff0c;却因为加载缓慢&#xff0c;导致用户刚打开…...

产品质量总是不稳?问题可能出在这五个地方

你厂里是不是也有这类难题&#xff1f;投入不少钱买设备、招人手&#xff0c;产品质量却始终上不去。不良品率高、批量出问题、客户投诉退货&#xff0c;甚至找不到问题根源。今天我就来聊聊质量上不去的几个原因&#xff0c;大家可对照自查。一、问题可能出现在生产之前看到质…...