#17883: NA 不知道哪錯


pcymichael (alexi)


想問一下哪裡錯了 找不到

這是DP的概念ㄅ

===================================================

#include<iostream>
using namespace std;
int main(){
int n;
while(cin>>n&&n!=0){
    int price[10000]={0},maxGain[10000]={0},minPrice[10000]={0};
    for(int i=0;i<n;i++)
        cin>>price[i];
    minPrice[0]=price[0];
    maxGain[0]=0;
    for(int i=1;i<n;i++){
        minPrice[i]=min(price[i],minPrice[i-1]);
        maxGain[i]=max(price[i]-minPrice[i-1],maxGain[i-1]);
    }
    cout<<maxGain[n-1]<<endl;
}
}

===================================================

#17885: Re:NA 不知道哪錯


rollfc (點石學園 StoneCampus)


想問一下哪裡錯了 找不到

這是DP的概念ㄅ

===================================================

#include
using namespace std;
int main(){
int n;
while(cin>>n&&n!=0){
    int price[10000]={0},maxGain[10000]={0},minPrice[10000]={0};
    for(int i=0;i<n;i++)
        cin>>price[i];
    minPrice[0]=price[0];
    maxGain[0]=0;
    for(int i=1;i<n;i++){
        minPrice[i]=min(price[i],minPrice[i-1]);
        maxGain[i]=max(price[i]-minPrice[i-1],maxGain[i-1]);
    }
    cout<<maxGain[n-1]<<endl;
}
}

===================================================

你要不要測試看看以下測資:

4

1 3 2 4

答案應該要是4,你的會輸出3。

理論上這題的要求與動態規劃無關,反而是當交易次數有限制時才會用到(應該吧?)