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

代码随想录第五十天

代码随想录第五十天

    • Leetcode 123. 买卖股票的最佳时机 III
    • Leetcode 188. 买卖股票的最佳时机 IV

Leetcode 123. 买卖股票的最佳时机 III

题目链接: 买卖股票的最佳时机 III
自己的思路:想不到!!!!高维dp数组!!

正确思路:这里和之前的都不太一样,因为限制了买卖股票的次数,所以我们就加大dp数组的维度;动规五部曲:1、dp数组的含义:dp[i][0]表示一开始不操作的情况、dp[i][1]表示第一次持有(不一定第i天才买入)、dp[i][2]表示第一次不持有(不一定第i天才卖出)、dp[i][3]表示第二次持有(不一定第i天才买入)、dp[i][4]表示第二次不持有(不一定第i天才卖出);2、递推公式:其实和上一题的递推公式是一样的;拿一种情况来讨论:dp[i][3]的情况:(1)、当第i天不买入的时候:dp[i-1][3];(2)、当第i天买入的时候:dp[i-1][[2]-prices[i];取最大值,其他的情况类似,不做讨论!3、dp数组初始化:由于后面的都是由dp[0][:]的时候推导得到,所以我们初始化dp[0][:],dp[0][0]=0因为一开始的金额是0;dp[0][1]=-prices[0]因为一开始金额为0,买入之后金额变成负的prices[0];dp[0][2]=0这里可以看做是第一天买入又卖出;dp[0][3]这里可以看做是第一天买入又卖出又买入;dp[0][4]这里可以看做是第一天买入又卖出又买入又卖出!!!4、遍历顺序:还是和之前一样从前向后遍历;5、打印dp数组:主要用于debug!!!!

代码:

class Solution {public int maxProfit(int[] prices) {int length = prices.length;int[][] dp = new int[length][4];//dp数组初始化dp[0][0] = -prices[0];dp[0][1] = 0;dp[0][2] = -prices[0];dp[0][3] = 0;for (int i =1;i<length;i++){//递推公式dp[i][0] = Math.max(dp[i-1][0],-prices[i]);dp[i][1] = Math.max(dp[i-1][1],dp[i][0]+prices[i]);dp[i][2] = Math.max(dp[i-1][2],dp[i][1]-prices[i]);dp[i][3] = Math.max(dp[i-1][3],dp[i][2]+prices[i]);}return dp[length-1][3];}
}

Leetcode 188. 买卖股票的最佳时机 IV

题目链接: 买卖股票的最佳时机 IV
自己的思路:其实和上一题基本一样,只不过广义化了一下,注意点细节就可以!!!!!

代码:

class Solution {public int maxProfit(int k, int[] prices) {int length = prices.length;int[][] dp = new int[length][2*k+1];//dp数组初始化for (int i=0;i<=2*k;i++){if (i%2==0) dp[0][i] = 0;else dp[0][i] = -prices[0];}for (int i =1;i<prices.length;i++){//递推公式for (int j=1;j<=2*k;j++){if (j%2==0) dp[i][j] = Math.max(dp[i-1][j],dp[i-1][j-1]+prices[i]);else dp[i][j] = Math.max(dp[i-1][j],dp[i-1][j-1]-prices[i]);}}return dp[length-1][2*k];}
}

相关文章:

代码随想录第五十天

代码随想录第五十天 Leetcode 123. 买卖股票的最佳时机 IIILeetcode 188. 买卖股票的最佳时机 IV Leetcode 123. 买卖股票的最佳时机 III 题目链接: 买卖股票的最佳时机 III 自己的思路:想不到&#xff01;&#xff01;&#xff01;&#xff01;高维dp数组&#xff01;&#x…...

redis缓存雪崩、穿透、击穿解决方案

redis缓存雪崩、穿透、击穿解决方案 背景缓存雪崩缓存击穿缓存穿透总结背景 关于缓存异常,我们常见的有三个问题:缓存雪崩、缓存击穿、缓存穿透。这三个问题一旦发生,会导致大量请求直接落到数据库层面。如果请求的并发量很大,会影响数据库的运行,严重的会导致数据库宕机…...

基于HarmonyOS ArkUI实现七夕壁纸轮播

七夕情人节&#xff0c;为了Ta&#xff0c;你打算用什么方式表达爱&#xff1f;是包包、鲜花、美酒、巧克力&#xff0c;还是一封充满爱意的短信&#xff1f;作为程序员&#xff0c;以代码之名&#xff0c;表达爱。本节将演示如何在基于HarmonyOS ArkUI的SwiperController、Ima…...

FusionAD:用于自动驾驶预测和规划任务的多模态融合

论文背景 自动驾驶&#xff08;AD&#xff09;任务通常分为感知、预测和规划。在传统范式中&#xff0c;AD中的每个学习模块分别使用自己的主干&#xff0c;独立地学习任务。 以前&#xff0c;基于端到端学习的方法通常基于透视视图相机和激光雷达信息直接输出控制命令或轨迹…...

C# 序列化json数据,datatabel转对象

datatabel直接转对象 转对象逻辑 1.将datatabel转为json格式 2.将json格式的内容转化为模型data_model的list对象 JsonConvert.DeserializeObject<List<data_model>>(JsonConvert.SerializeObject(dt))...

axios引入的详细讲解

1.安装axios&#xff1a;npm install axios&#xff0c;等待安装完毕即可 2.引用axios&#xff1a;在需要使用的页面中引用 import axios from axios 即可 axios请求的时候有两种方式&#xff1a;一种是get请求&#xff0c;另一种是post请求 get请求&#xff1a; axios({…...

16- flask-bootstrap模板的使用

Flask 中支持 flask-bootstrap模板 和 bootstrap-flask模板 # 不使用: bootstrap-flask # pip install bootstrap-flask1.3.1 # 支持bootstrap 4 # pip install flask-bootstrap # 支持bootstrap3# 中文文档:https://flask-bootstrap-zh.readthedocs.io/zh/latest/ # 样式文档…...

机器学习-神经网络(西瓜书)

神经网络 5.1 神经元模型 在生物神经网络中&#xff0c;神经元之间相互连接&#xff0c;当一个神经元受到的外界刺激足够大时&#xff0c;就会产生兴奋&#xff08;称为"激活"&#xff09;&#xff0c;并将剩余的"刺激"向相邻的神经元传导。 神经元模型…...

Apache StreamPark系列教程第二篇——项目打包和开发

一、项目打包 项目依赖maven、jdk8.0、前端(node、npm) //下载代码 git clone//maven打包相关内容 mvn -N io.takari:maven:wrapper //前端打包相关内容 curl -sL https://rpm.nodesource.com/setup_16.x | bash - yum -y install nodejs npm -v npm install -g pnpm默认是h2…...

Visual Studio 2022的MFC框架——WinMain函数

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天我们来重新审视一下Visual Studio 2022下开发工具的MFC框架知识。 大家还记得创建Win32应用程序是怎么弄的吗&#xff1f; Win32应用程序的建立到运行是有一个个关系分明的步骤的&#xff1a; 1.进入W…...

9. 解谜游戏

目录 题目 Description Input Notes 思路 暴力方法 递归法 注意事项 C代码&#xff08;递归法&#xff09; 关于DFS 题目 Description 小张是一个密室逃脱爱好者&#xff0c;在密室逃脱的游戏中&#xff0c;你需要解开一系列谜题最终拿到出门的密码。现在小张需要打…...

fastjson利用templatesImpl链

fastjson1.2.24 环境&#xff1a; pom.xml&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLoc…...

OpenCV 开启O3优化

opencv默认没有开启O3优化选项&#xff0c;需要进行手动设置&#xff0c;下面是一种优化方法&#xff1a; 方法一 在 /opencv-4.5.5/cmake/OpenCVCompilerOptions.cmake 中的第 269 行做出以下修改&#xff1a; # 修改前 set(OPENCV_EXTRA_FLAGS_RELEASE "${OPENCV_EXT…...

css background实现四角边框

2023.8.27今天我学习了如何使用css制作一个四角边框&#xff0c;效果如下&#xff1a; .style{background: linear-gradient(#33cdfa, #33cdfa) left top,linear-gradient(#33cdfa, #33cdfa) left top,linear-gradient(#33cdfa, #33cdfa) right top,linear-gradient(#33cdfa, #…...

摆动序列【贪心算法】

摆动序列 如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 class Solution {public int wiggleMaxLength(int…...

【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习)

本站以分享各种运维经验和运维所需要的技能为主 《python》&#xff1a;python零基础入门学习 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解…...

自定义String字符串工具类 StringUtils.java

自定义String字符串工具类 StringUtils.java 简介 自定义String字符串工具类 api 是否为空 checkEmpty(String str);目标字符串是目标数组中的一个 checkContains(String str, String[] target);限制最大长度 checkMaxLength(String str, Long l);是否纯数字的字符串 check…...

mongTemplate实现group分组查询aggregation

MongoService封装 <T> List<T> group(Class<T> clazz, Aggregation aggregation,String documentName); MongoServiceImpl实现类 Overridepublic <T> List<T> group(Class<T> clazz, Aggregation aggregation,String documentName) {//…...

防御网络攻击风险的4个步骤

如今&#xff0c;人们正在做大量工作来保护 IT 系统免受网络犯罪的侵害。令人担忧的是&#xff0c;对于运营技术系统来说&#xff0c;情况却并非如此&#xff0c;运营技术系统用于运行从工厂到石油管道再到发电厂的所有业务。 组织应该强化其网络安全策略&#xff0c;因为针对…...

相机SD卡数据丢失如何恢复?

出门在外&#xff0c;相机是人们记录生活点滴的重要工具&#xff0c;是旅游的最佳玩伴。人们每到一个地方&#xff0c;都喜欢用相机来见证自己来过的痕迹&#xff0c;拍好的照片都会被放到相机卡里&#xff0c;但在使用相机时&#xff0c;有时我们会意外删除了重要的照片或视频…...

避开这3个坑!GD32 ADC用DMA搬运数据时,定时器触发配置的常见误区与调试技巧

避开这3个坑&#xff01;GD32 ADC用DMA搬运数据时&#xff0c;定时器触发配置的常见误区与调试技巧 在嵌入式开发中&#xff0c;ADC&#xff08;模数转换器&#xff09;的数据采集是一个基础但至关重要的功能。当我们需要高效、稳定地采集大量数据时&#xff0c;通常会使用DMA…...

宝塔面板新手避坑指南:从服务器选购到LNMP环境一键部署全流程

宝塔面板新手避坑指南&#xff1a;从服务器选购到LNMP环境一键部署全流程 第一次接触服务器运维的新手&#xff0c;往往会被各种专业术语和复杂操作搞得晕头转向。作为过来人&#xff0c;我深知那种面对命令行时的无助感。宝塔面板的出现&#xff0c;确实让服务器管理变得简单了…...

Lua代码混淆实战:基于Prometheus的Unity项目保护指南

1. 为什么你的Unity项目需要Lua代码混淆 最近有个做独立游戏的朋友跟我吐槽&#xff0c;他花半年开发的游戏上线不到一周就被破解了。更气人的是&#xff0c;破解版直接去掉了内购系统&#xff0c;还挂在第三方平台免费下载。这种情况在游戏圈太常见了&#xff0c;特别是使用Lu…...

查重率亮红灯反复修改,有哪些真正闭眼可入的的AI智能降重工具推荐?

毕业论文降重&#xff0c;核心在于语义优化 去AI痕迹 降低查重率&#xff0c;工具选择直接影响修改效率。推荐免费与付费工具结合使用&#xff0c;既能节省成本又保证效果。下面按中文、英文、免费/付费分类整理&#xff0c;附上实测效果与适用场景。 一、中文论文降重工具&a…...

DisplayCAL Python 3:专业显示器色彩校准的现代化解决方案

DisplayCAL Python 3&#xff1a;专业显示器色彩校准的现代化解决方案 【免费下载链接】displaycal-py3 DisplayCAL Modernization Project 项目地址: https://gitcode.com/gh_mirrors/di/displaycal-py3 你是否曾为显示器色彩不准确而烦恼&#xff1f;照片在不同设备上…...

3个步骤解决CAJ文献跨平台阅读难题:开源格式转换工具全解析

3个步骤解决CAJ文献跨平台阅读难题&#xff1a;开源格式转换工具全解析 【免费下载链接】caj2pdf Convert CAJ (China Academic Journals) files to PDF. 转换中国知网 CAJ 格式文献为 PDF。佛系转换&#xff0c;成功与否&#xff0c;皆是玄学。 项目地址: https://gitcode.c…...

Conda镜像源配置的3个高级玩法与1个常见大坑:不止是换URL那么简单

Conda镜像源配置的3个高级玩法与1个常见大坑&#xff1a;不止是换URL那么简单 当你在团队协作中遇到TensorFlow版本冲突&#xff0c;或是Docker构建时因网络问题卡在Solving environment步骤&#xff0c;基础镜像源切换早已不够用。真正的高手会在.condarc里埋下这些彩蛋&#…...

GTE中文-large企业落地实践:政务文本分类+事件抽取在公文处理中的应用案例

GTE中文-large企业落地实践&#xff1a;政务文本分类事件抽取在公文处理中的应用案例 1. 引言&#xff1a;当公文处理遇上AI 想象一下&#xff0c;每天有成千上万份政府公文、报告、通知在各个部门间流转。一份关于“老旧小区改造”的请示文件&#xff0c;需要被快速准确地分…...

Lingbot-Depth-Pretrain-Vitl-14 结合Transformer架构:深度估计模型优化实战

Lingbot-Depth-Pretrain-Vitl-14 结合Transformer架构&#xff1a;深度估计模型优化实战 深度估计&#xff0c;简单来说&#xff0c;就是让计算机从一张普通的2D图片里&#xff0c;“猜”出每个像素点距离相机的远近。这听起来有点像我们人眼在看世界时&#xff0c;能感知到的…...

OpenClaw安全加固:Qwen3.5-4B-Claude操作权限精细化控制

OpenClaw安全加固&#xff1a;Qwen3.5-4B-Claude操作权限精细化控制 1. 为什么需要权限控制&#xff1f; 上周我在调试OpenClaw自动化脚本时&#xff0c;差点酿成一场"灾难"——AI助手误将我的工作文档识别为临时文件&#xff0c;准备执行删除操作。幸亏当时设置了…...