首页 > 其他分享 >day35

day35

时间:2024-10-13 11:10:59浏览次数:3  
标签:int max day35 vector prices dp size

买卖股票最佳时机IV
class Solution {
public:
int maxProfit(int k, vector& prices) {
vector<vector> dp(prices.size(), vector(2k, 0));
for(int i = 0; i < 2
k; i++)
{
if(i % 2 == 0)
{
dp[0][i] = -prices[0];
}
}
for(int i = 1; i < prices.size(); ++i)
{
dp[i][0] = max(dp[i-1][0], -prices[i]);
for(int j = 1; j < 2*k; ++j)
{
if(j % 2 == 0)
{
dp[i][j] = max(dp[i-1][j], dp[i-1][j-1]-prices[i]);
}
else
{
dp[i][j] = max(dp[i-1][j], dp[i-1][j-1]+prices[i]);
}
}

    }
    return dp[prices.size()-1][2*k-1];
}

};

买卖股票的最佳时机冷冻期
class Solution {
public:
int maxProfit(vector& prices) {
vector<vector> dp(prices.size(), vector(4, 0));
dp[0][0] = -prices[0];
for(int i = 1; i < prices.size(); ++i)
{
dp[i][0] = max(dp[i-1][0], max(dp[i-1][1]-prices[i], dp[i-1][3]-prices[i]));
dp[i][1] = max(dp[i-1][1], dp[i-1][3]);
dp[i][2] = dp[i][0]+prices[i];
dp[i][3] = dp[i-1][2];
}
return max(dp[prices.size()-1][1], max(dp[prices.size()-1][2], dp[prices.size()-1][3]));
}
};

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

class Solution {
public:
int maxProfit(vector& prices, int fee) {
vector<vector> dp(prices.size(), vector(2,0));
dp[0][0] = -prices[0];
dp[0][1] = 0;
for(int i = 1; i < prices.size(); ++i)
{
dp[i][0] = max(dp[i-1][0], dp[i-1][1]-prices[i]);
dp[i][1] = max(dp[i-1][1], dp[i-1][0] + prices[i]-fee);
}
return dp[prices.size()-1][1];
}
};

标签:int,max,day35,vector,prices,dp,size
From: https://www.cnblogs.com/pwangikun/p/18462027

相关文章

  • leetcode 刷题day35动态规划Part04 背包问题(1049. 最后一块石头的重量 II 、494. 目标
    1049.最后一块石头的重量II思路:解题的难度在于如何转化为背包问题。本题的核心思路是让石头分成重量相同的两堆,相撞之后剩下的石头最小,这样就化解成01背包问题,和416.分割等和子集非常像了。首先,背包的容量target为sum/2向下取整,得到dp[target]就是分出来较小的一堆,用su......
  • javase复习day35反射
    反射获取class对象的方法 publicclassDemo1{publicstaticvoidmain(String[]args)throwsClassNotFoundException{//获取反射的三种方式//第一种Class.forName(全类名)//用法:最为常用Class<?>clazz1=Class.forNam......
  • Day35 动态规划Part3
    目录任务01背包(KAMA46)DP思路滚动数组思路416.分割等和子集思路任务有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。01背包(KAMA46)DP思路dp[i][j]为[0,i]的所有物......
  • 代码随想录day35 || 416 分割等和子集
    背包问题有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。//pake//// @Description:// @paramweights:物品i对应重量// @paramvalue:物品i对应价值// @......
  • 从零开始的JAVAday29~day35
    后续语法if()语法若满足()中的语法,则执行后面的语句。循环for(a;b;c)和while(c)语法for(a;c;b)语法意思为在循环前进行a语句每次循环结束后进行b语法,若满足c语句则再次循环。whlie(c)循环若满足c条件则循环。......
  • 代码随想录 Day35 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球
    860.柠檬水找零 classSolution{public:boollemonadeChange(vector<int>&bills){intfive=0,ten=0,twenty=0;for(intbill:bills){//情况一if(bill==5)five++;//情况二......
  • 代码随想录算法训练营day35 | leetcode 860. 柠檬水找零、406. 根据身高重建队列、452
    目录题目链接:860.柠檬水找零-简单题目链接:406.根据身高重建队列-中等题目链接:452.用最少数量的箭引爆气球-中等题目链接:860.柠檬水找零-简单题目描述:在柠檬水摊上,每一杯柠檬水的售价为5美元。顾客排队购买你的产品,(按账单bills支付的顺序)一次购买一杯。每位顾客只买一......
  • 代码随想录 day35 柠檬水找零 根据身高重建队列 用最少数量的箭引爆气球
    柠檬水找零就根据几种条件列出来找零情况就行生活经验可知找零当然先给大面额的利于后面的找零根据身高重建队列这题感觉就是先做过队列给糖也难以有思路这里是先按身高先排好队一样身高就k小的排在前面然后再按他前面有几个人直接就给他插到第几个位置就行用最少......
  • Day35 递归
    递归A方法调用B方法,我们很容易理解!递归就是:A方法调用A方法!就是自己调用自己利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大......
  • 算法训练day35 122.55.45.
    算法训练day35122.55.45.122.买卖股票的最佳时机II题目122.买卖股票的最佳时机II-力扣(LeetCode)题解代码随想录(programmercarl.com)将看似复杂的任务分解成小任务--->利润可以视作每连续两天价格差的和--->只取正利润classSolution{public:intmax......