假设你有一个数组,长度为,其中是某只股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益 1. 你最多可以对该股票有笔交易操作,一笔交易代表着一次买入与一次卖出,但是再次购买前必须卖出之前的股票 2. 如果不能获取收益,请返回0 3. 假设买入卖出均无手续费 数据范围:
区块链毕设网qklbishe.com为您提供问题的解答
假设你有一个数组,长度为,其中是某只股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益
1. 你最多可以对该股票有笔交易操作,一笔交易代表着一次买入与一次卖出,但是再次购买前必须卖出之前的股票
2. 如果不能获取收益,请返回0
3. 假设买入卖出均无手续费
1. 你最多可以对该股票有笔交易操作,一笔交易代表着一次买入与一次卖出,但是再次购买前必须卖出之前的股票
2. 如果不能获取收益,请返回0
3. 假设买入卖出均无手续费
数据范围:
#include<bits/stdc++.h> using namespace std; int maxProfit(vector<int>&prices,int k){ int n=prices.size(); k=min(k,n/2); //2k+1种状态 vector<int>buy(k+1); vector<int>sell(k+1); buy[0]=-prices[0]; sell[0]=0; for(int i=1;i<=k;i++){ buy[i]=sell[i]=INT_MIN/2; } for(int i=1;i<n;i++){ buy[0]=max(buy[0],sell[0]-prices[i]); for(int j=1;j<=k;j++){ buy[j]=max(buy[j],sell[j]-prices[i]); sell[j]=max(sell[j],buy[j-1]+prices[i]); } } return *max_element(sell.begin(),sell.end()); } int main(){ int n,k;cin>>n>>k; vector<int>prices(n); for(int i=0;i<n;i++)cin>>prices[i]; cout<<maxProfit(prices,k); }
05:16
以上就是关于问题假设你有一个数组,长度为,其中是某只股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益
1. 你最多可以对该股票有笔交易操作,一笔交易代表着一次买入与一次卖出,但是再次购买前必须卖出之前的股票
2. 如果不能获取收益,请返回0
3. 假设买入卖出均无手续费 数据范围:的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训