leetcode每日刷题计划-简单篇day11

时间:2022-05-24 20:52:23

Num 121 买卖股票的最佳时期 Best Time to Buy and Sell Stock

class Solution {
public:
int maxProfit(vector<int>& prices) {
int len=prices.capacity();
if(prices.capacity()==) return ;
int minn=prices[];
int maxn=prices[];
int ans=;
for(int i=;i<=len-;i++)
{
maxn=prices[i];
minn=prices[i];
for(int j=i+;j<=len-;j++)
{
if(prices[j]>maxn)
maxn=prices[j];
}
ans=max(ans,maxn-minn);
}
return ans;
}
};

Num 122 买卖股票的最佳时期 || Best Time to Buy and Sell Stock ||

先上一个正确但是TLE的方法。。。

class Solution {
public:
int maxProfit(vector<int>& prices) {
int ans[];
int len=prices.capacity();
if(len==||len==) return ;
memset(ans,,sizeof(ans));
if(len==) return max(,prices[]-prices[]);
ans[len-]=max(,(int)(prices[len-]-prices[len-]));
for(int j=len-;j>=;j--)
{
for(int i=;i<len--j;i++)
{
ans[j]=max(ans[j],max(ans[j+i],ans[j+i]+(int)(prices[j+i]-prices[j])));
}
}
return ans[];
}
};

TLE 代码

默认里面带的max函数只能处理两个

另外这道题是贪心,刚开始重复计算tle了

class Solution {
public:
int maxProfit(vector<int>& prices) {
int ans=;
int len=prices.capacity();
for(int i=;i<len-;i++)
ans=ans+max(,prices[i+]-prices[i]);
return ans;
}
};