首页 > 其他分享 >(51/60)买卖股票的最佳时机含冷冻期、买卖股票的最佳时机含手续费

(51/60)买卖股票的最佳时机含冷冻期、买卖股票的最佳时机含手续费

时间:2024-03-21 23:57:04浏览次数:15  
标签:买卖 持有 max 51 int 最佳时机 prices dp size

day51

买卖股票的最佳时期含冷冻期

leetcode:309. 买卖股票的最佳时机含冷冻期

动态规划

代码实现

/*
意义:下标为i时各种情况的收益
dp[i][0] 持有
dp[i][1] 当天卖出
dp[i][2] 之前不持有
递推:
dp[i][0] = max(dp[i-1][0],dp[i-1][2] - prices[i]); // 之前持有、之前不持有且当天持有
dp[i][1] = dp[i-1][0] + prices[i]; // 当天卖出(持有->当天卖出)
dp[i][2] = max(dp[i-1][2],dp[i-1][1]); // 之前不持有、前一天当天卖出
初始化:
dp[0][0] = -prices[0];
dp[0][1] = 0; // 没意义占位
dp[0][2] = 0; 
*/

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        vector<vector<int>> dp(prices.size(),vector<int>(3,0));
        dp[0][0] = -prices[0];
        for(int i = 1;i < prices.size();i++){
            dp[i][0] = max(dp[i-1][0],dp[i-1][2] - prices[i]); // 之前持有、之前不持有且当天持有
            dp[i][1] = dp[i-1][0] + prices[i]; // 当天卖出
            dp[i][2] = max(dp[i-1][2],dp[i-1][1]); // 之前不持有、前一天当天卖出
        }

        return max(dp[prices.size()-1][1],dp[prices.size()-1][2]);
    }
};

买卖股票的最佳时机含手续费

leetcode:714. 买卖股票的最佳时机含手续费

动态规划

代码实现

/*
意义:下标为i的各类型最大收益为
dp[i][0]不持有
dp[i][1]持有
递推:
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]); // 前一天持有、前一天不持有当天持有
初始化:
dp[0][0] = 0;
dp[0][1] = -prices[0];
*/

class Solution {
public:
    int maxProfit(vector<int>& prices, int fee) {
        vector<vector<int>> dp(prices.size(),vector<int>(2,0));
        int count = 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 dp[prices.size()-1][0];
    }
};

标签:买卖,持有,max,51,int,最佳时机,prices,dp,size
From: https://www.cnblogs.com/tazdingo/p/18088514

相关文章

  • (50/60)买卖股票的最佳时机Ⅲ、买卖股票的最佳时机Ⅳ
    day50买卖股票的最佳时机Ⅲleetcode:123.买卖股票的最佳时机III动态规划代码实现/*意义:下标为i时,不同状态收益为dp[i][0]未持有dp[i][1]第一次持有dp[i][2]第一次未持有dp[i][3]第二次持有dp[i][4]第二次未持有递推:dp[i][0]=dp[i-1][0];之前未持有dp[i]......
  • (48/60)买卖股票的最佳时机、买卖股票的最佳时机Ⅱ
    day48买卖股票的最佳时机leetcode:121.买卖股票的最佳时机动态规划代码实现/*意义:dp[i][0]下标为i天持有股票的最大收益;dp[i][1]下标为i天不持股的最大收益递推:之前买入、当天买入:dp[i][0]=max(dp[i-1][0],-prices[i]);之前卖出、当天卖出:dp[i][1]=max(dp[i-1][1],......
  • 51单片机入门
    51单片机学习笔记1.单片机入门系列单片机,英文MicroControllerUnit,简称MCU江科大51开发板原理图C51数据类型进制转换十进制二进制十六进制十进制二进制十六进制000000810008100011910019200102101010A300113111011B4010......
  • lc516 最长回文子序列
    给定长度为n的字符串s,求最长回文子序列的长度。1<=n<=1000区间dp,记dp[i][j]表示区间[i,j]能构成的最长回文串的长度,根据s[i]跟s[j]是否相等进行转移。classSolution{public:intdp[1005][1005];intlongestPalindromeSubseq(strings){intn=s.size()......
  • 51单片机串口接收发送字符串
    在使用51单片机开发时,规定相关协议要单片机要通过串口接收一系列数据(以C8051F410单片机为例)。    串口的SBUF寄存器触发中断一次只能接收一个字节的数据,所以使用数组进行存储的时候不能一次将所有数据进行存储。    假设通信协议协议:数据包第一字节为A5,第......
  • DSP,STM32,ARM,51单片机,FPGA相关解释
    搞嵌入式,物联网相关的朋友们可能将这些硬件的一些技术栈混淆,本文将大致对此进行梳理:对比ARM与其他架构ARM架构的优势在于它的高能效比,这使得它非常适合于移动设备和嵌入式系统。与之相比,例如x86架构更常见于个人电脑和服务器中,它们通常追求更高的性能,能耗问题不是首要考虑。......
  • 【力扣刷题日记】512.游戏玩法分析II
    前言练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。今日题目:512.游戏玩法分析II表:Activity列名类型player_idintdevice_idintevent_datedategames_playedint(player_id,event_date)是这个表的两个主键(具有唯一值的列......
  • 技术支持Tektronix泰克DPO5104B数字示波器1GHz
    泰克DPO5104B数字示波器Bandwidth:1GHz4频道纪录长度:125米SampleRate:10/5GS/s(2/4ch)最多250兆跳记录长度,多视图变焦器。最大波形捕获率带310000帧的快速帧分段内存采集模式每秒捕获率标准的无源电压探针,其电容性小于4pp装载和500兆赫或1千兆赫模拟带宽......
  • 洛谷题单指南-集合-P1551 亲戚
    原题链接:https://www.luogu.com.cn/problem/P1551题意解读:要判断两人是否是亲戚,只需要看两人是否属于一个集合,基于所有已知的亲戚关系,可以建立多个有亲戚关系的集合,这个过程可以借助并查集。解题思路:并查集:1、定义并查集是一种树形数据结构,本质上是多棵树,每棵树表示一个集合,......
  • 51nod2599 最近公共祖先LCA
    给定一颗n个节点的树,根节点编号为1,有Q组询问,每次给定一对节点编号(x,y),求(x,y)的最近公共祖先。求LCA有多种方法,这里给的是倍增法,预处理时间O(nlogn),单次查询时间O(logn),支持在线。#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#definerep(i,a,b)for......