代码随想录刷题记录 day43 股票买卖的最佳时机1 2

news2024/11/26 8:48:55

代码随想录刷题记录 day43 股票买卖的最佳时机1 2

参考:代码随想录

121. 买卖股票的最佳时机

在这里插入图片描述

思想

  1. dp数组定义

    dp[i][0]表示 第i天 持有股票 手头的最大的现金数为dp[i][0]

    dp[i][1]表示 第i天 不持有股票 手头的最大的现金数为dp[i][1]

  2. 递推公式

    dp[i][0]= dp[i-1][0] :第i-1天持有 , -prices[i] :第i-1天不持有,第i天持有了 表示买入了股票。因为本题股票只能买卖一次,所以是-prices[i]

    dp[i][1]=Math.max(dp[i-1][0]+prices[i] :i-1天持有,i天不持有 表示卖出,dp[i-1][1]:i-1天不持有,i天也不持有)

  1. 初始化

    dp[0][0]=-prices[0];

    dp[0][1]=0;

  2. 遍历顺序,依靠之前的状态

  3. 打印数组

在这里插入图片描述

代码

class Solution {
    public int maxProfit(int[] prices) {
        //dp[i][0]表示 第i天 持有股票 手头的最大的现金数为dp[i][0]
        //dp[i][1]表示 第i天 不持有股票 手头的最大的现金数为dp[i][1]
        //dp[i][0]= dp[i-1][0] 第i-1天持有   -prices[i] 第i-1天不持有,第i天持有了 表示买入了股票
        //dp[i][0]=Math.max(dp[i-1][0],-prices[i])

        //dp[i][1]=Math.max(dp[i-1][0]+prices[i] ,dp[i-1][1])

        //初始化
        int[][] dp=new int[prices.length][2];
        dp[0][0]=-prices[0];
        dp[0][1]=0;

        for(int i=1;i<prices.length;i++){
            dp[i][0]=Math.max(dp[i-1][0],-prices[i]);
            dp[i][1]=Math.max(dp[i-1][0]+prices[i], dp[i-1][1]);
        }

        return dp[prices.length-1][1];
    }
}

122. 买卖股票的最佳时机 II

在这里插入图片描述

思想

1.贪心

2.动态规划

和上一题的区别就是可以多次买卖,所以dp[i][0]=max(dp[i-1][0], dp[i-1][1]-prices[i])

代码

class Solution {
    // public int maxProfit(int[] prices) {
    //     //只要第二天的利润为正的 就卖出股票
    //     int res=0;
    //     for(int i=1;i<prices.length;i++){
    //         if(prices[i]>prices[i-1]){
    //             res+=prices[i]-prices[i-1];
    //         }
    //     }
    //     return res;
    // }

    public int maxProfit(int[] prices){
        //dp[i][0]表示第i天 持有股票 手上的最大的现金
        //dp[i][1]表示第i天 不持有股票 手上的最大的现金

        //dp[i][0]:
        //i-1天持有,i天还持有 dp[i][0]=dp[i-1][0]
        //i-1天不持有 i天持有 说明在第i天买入了 dp[i][0]=dp[i-1][1]-prices[i]  和上一题不同的是可能这里有利润,会有剩余
        //dp[i][0]=Math.max(dp[i-1][0],dp[i-1][1]-prices[i])

        //dp[i][1]
        //i-1天持有,第i天不持有,表示卖出股票 dp[i][1]=dp[i-1][0]+prices[i]
        //i-1天不持有 第i天也不持有 dp[i][1]=dp[i-1][1]

        int[][] dp=new int[prices.length][2];
        dp[0][0]=-prices[0];
        dp[0][1]=0;

        for(int i=1;i<prices.length;i++){
            dp[i][0]=Math.max(dp[i-1][0],dp[i-1][1]-prices[i]);
            dp[i][1]=Math.max(dp[i-1][0]+prices[i], dp[i-1][1]);
        }

        return dp[prices.length-1][1];
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/86281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2004-2020年全国31省环境规制强度

2004-2020年全国各省环境规制强度 1、时间区间为2004-2020年 2、范围&#xff1a;包括全国31个省份 3、缺失情况&#xff1a;西藏存在部分年份缺失&#xff0c;其他省份无缺失 4、指标包括&#xff1a; 工业污染治理完成投资(万元)、第二产业增加值(亿元)、环境规制强度 …

vue父子组件之间的传值,及互相调用父子组件之间的方法

场景&#xff1a;记录下父子组件之间的传值方法&#xff0c;以及调用他们的内部的方法 *** 父组件给子组件传值是通过属性绑定的方法 *** 子组件给父组件传值是通过绑定对应的方法将自身的值传递给父组件 当然&#xff0c;我这只是说了一种传参方式&#xff0c;也包含通过vuex的…

Spring Boot基于FreeMarker发送模板邮件(带附件)

目录一、背景二、maven依赖三、编码实现3.1、邮件对象3.2、服务层3.2.1、抄送人3.2.2、嵌入式资源3.2.3、附件3.3、邮件模板3.3.1、模板引擎3.4、配置文件四、测试4.1、发送简单邮件4.2、发送复杂邮件4.3、效果图一、背景 邮件在工作中中经常被用到&#xff0c;场景非常的广泛&…

高分子PEG:8Arm PEG-DBCO,八臂聚乙二醇环辛炔 MV1K 2K 3.4K 5K

【中文名称】八臂聚乙二醇环辛炔 【英文名称】 8Arm PEG-DBCO&#xff0c;DBCO PEG 8Arm 【结 构 式】 【CAS号】N/A 【分子量】1000&#xff0c;2000&#xff0c;3400&#xff0c;5000&#xff0c;10000&#xff0c;20000 【基团部分】DBCO 【纯度标准】95% 【包装规格】1g&…

【Lilishop商城】No3-8.模块详细设计,订单模块-2(订单)的详细设计

仅涉及后端&#xff0c;全部目录看顶部专栏&#xff0c;代码、文档、接口路径在&#xff1a; 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑&#xff0c;其中重点包括接口类、业务类&#xff0c;具体的结合源代…

ssm+Vue计算机毕业设计校园社团管理系统(程序+LW文档)

ssmVue计算机毕业设计校园社团管理系统&#xff08;程序LW文档&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技…

Android入门第46天-使用BroadCast来模拟异地登录事件发生后的主动退出另一个设备重登录

简介 随着对BroadCast的越来越深入&#xff0c;我们今天要实现一个稍微复杂一点的BroadCast。即我们常用来有时APP打开时如果多个设备同时登录一个帐号&#xff0c;而我们只允许一个设备登录一个帐号时&#xff0c;此时我们的APP会弹一个对话框如&#xff1a;您的账号在别处登…

结合面试详细分析 HashMap 源码

个人文档站点&#xff1a;小熊学Java 1、底层结构 相信大家都已经听过很多了&#xff0c;这里就不多阐述了&#xff0c;至于什么时候是数组&#xff0c;什么时候会变成链表&#xff0c;后续会讲解&#xff0c;别急&#xff01; JDK版本数据结构JDK1.7数组链表JDK1.8数组 &…

腾讯云数据万象:智能+存储双驱动,数倍提升内容生产效能

伴随数字经济市场稳步扩张&#xff0c; AI和富媒体融合的场景式体验、营销模式、分享渠道已经成为数字商业中不可或缺的部分。12月1日&#xff0c;在2022腾讯全球数字生态大会存储专场&#xff0c;腾讯云数据万象发布产品更新&#xff0c;与腾讯云对象存储COS共同打造智能存储生…

[附源码]Nodejs计算机毕业设计基于JAVA语言的国货美妆店管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

JavaScript-DOM操作表单

目录 表单事件 表单方法 操作表单 获取表单的值 表单内容html checkbox的获取办法 表单事件 注意&#xff1a;onsubmit,onreset只能给表单添加 表单.submit ;表单.onreset; form.onsubmitfunction(){alert(表单即将被提交);};form.onresetfunction(){alert(表单即将被重…

ChatGPT:竟然精通ENVI IDL、ArcGIS等软件!

目录 01 使用途径 02 使用 01 使用途径 我试了很多网站&#xff0c;包括注册登录、插件、镜像网站&#xff0c;微信机器人&#xff0c;QQ机器人&#xff0c;但是目前这些或多或少都由于OpenAI的限制无法正常使用。所以总的来说需要科学上网并且需要国外手机号&#xff0c;这有…

CCIE-重认证-300-410-补充题库-必须的哟

实验题 VRF router bgp 65000 bgp router-id x bgp log-neighbor-cha address-fa ipv4 vrf green red con neigh x remote-as 65000 neigh x act 重复red inter e0/0 ip vrf for red ip add x x 重复e0/1,for green inter e0/2.100 enc dot 100 ip vrf for red ip add x x …

无工具情况下linux数据库命(postgresql)令行建表操作文档

首先将帮助文档下的test.sql放在服务器的某个位置。sql文件如下图&#xff1a; /*Navicat Premium Data TransferSource Server : postgres-123Source Server Type : PostgreSQLSource Server Version : 100010Source Host : 192.168.3.123:5432Source C…

完全开源的代码生成器之code-generator

什么是code-generator code-generator是一个低代码平台, 可以解决90%单表增删改查工作量, 你可以通过自定义代码模板来生成适合自己的代码。 目前该系统主要针对的是语言是java, 数据源是mysql(其他数据库待测试)&#xff0c;数据源支持mysql, oracle, dm, PostgreSql等数据库…

[附源码]计算机毕业设计的在线作业批改系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…

Revit 中注释族的应用详解及公共族库工具

一、Revit 中注释族的应用详解&#xff1a; 注释族是用来表示二维注释的族文件&#xff0c;它被广泛用于很多构件的二维视图表现。下面以一个实例来说明注释族的应用 1、注释族创建实例 用“公制常规注释.rft”族样板创建一个注释族&#xff0c;在“族类别和族参数”对话框中选…

视觉SLAM ch9

状态估计的概率解释&#xff1a;位姿x和路标y服从某种概率分布&#xff0c;目的是通过某些运动数据u&#xff08;比如惯性测量传感器IMU输入&#xff09;和观测数据z&#xff08;比如拍摄到的照片像素点的值&#xff09;来确定状态量x和y的分布。 一、关于卡尔曼滤波器和扩展卡…

ssm+Vue计算机毕业设计校园食堂订餐系统(程序+LW文档)

ssmVue计算机毕业设计校园食堂订餐系统&#xff08;程序LW文档&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技…

Vim解决问题的方式

目录1 认识 . 命令2 不要自我重复3 以退为进4 执行、重复、回退5 查找并手动替换1 认识 . 命令 . 命令让我们重复上次的修改&#xff0c;它是Vim中最为强大的多面手。我们来练习下&#xff0c;如何快速的在vim进行操作&#xff0c;由下图形&#xff1a; 转成如下图形&#x…