-4
ここに私が解決しようとしている問題https://www.hackerrank.com/challenges/stockmaxへのリンクがあります。HackerRankで在庫を解決するアプローチを最大限に活用できますか?
マイ・アプローチ:
インデックス0からnまでのトラバース。翌日の価格が今日よりも高い場合、私は株式を買います。そして、翌日の価格が今日よりも低い場合、私はすでに購入した株式を現在のレートで売る。しかし、私はテストケースに合格できず、私の解決策が間違っている理由を知らない。ここで
コード
#include<iostream>
#include<algorithm>
using namespace std;
int a[100005]={0};
int main()
{
int t,n;
long long sum=0;
cin>>t;
while(t--)
{
sum=0;
int cnt=0;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
int i=0;
while(i<n)
{
while(a[i+1]>=a[i]&&(i+1)<n)
{
sum-=a[i];
i++;
cnt++;
}
sum+=(cnt)*a[i];
cnt=0;
i++;
}
printf("%lld\n",max(sum,0));
}
return 0;
}
'の最大値を取得するためのロジックを適用しますa [i + 1]は以前のテストケースからのデータを含むことができる。注意してください。 – MikeCAT
ありがとうございますMikeCAT。私はそれを理解し、そのエラーを修正する、一度私は単一のテストケースのための実用的な解決策を得る:) – user