刚开始像试试暴力能不能过
class Solution {
public:
int maxProfit(vector<int>& prices) {
if(prices.size()==1||prices.size()==0)
return 0;
int max=0;
for(int i=0;i<prices.size()-1;i++){
for(int j=i+1;j<prices.size();j++){
if((prices[j]-prices[i])>max)
max=prices[j]-prices[i];
}
}
return max;
}
};
他妈醉了,这特么也能过,leetcode和其他oj机制不一样吗?
class Solution {
public:
int maxProfit(vector<int>& prices) {
if(prices.size()==1||prices.size()==0)
return 0;
int p[100000];
int n=prices.size();
int min=10000000;
int max=0;
for(int i=0;i<n;i++)
{
if(prices[i]<min)
{
min=prices[i];
}else{
if(prices[i]-min>max)
{
max=prices[i]-min;
}
}
}
return max;
}
};
感觉这题不算动态规划,第二种方法是维护一个到当前位置的最小值,和到当前位置的利润,因为不管前面顺序如何,最小值肯定是需要用的,但是利润缺不一定是最大值减掉最小值。