このキューで最大値を探したいのですが、これをどのように解決できますか?このキューの最大値はどのようにして見つけることができますか?
queue<pair<int , int> > q; for(int i = 1; i <= n; i++){ int p; cin >> p; q.push(make_pair(p, i)); }
このキューで最大値を探したいのですが、これをどのように解決できますか?このキューの最大値はどのようにして見つけることができますか?
queue<pair<int , int> > q; for(int i = 1; i <= n; i++){ int p; cin >> p; q.push(make_pair(p, i)); }
は、私がコメントを残してくださいいない場合は、このコードをチェックしてください私が正しくあなたの問題を理解願っていますし、私はそれはあなたが必要とするものは何でもすることを願っています。
queue<pair<int , int> > q;
int max=-1;//you can use INT_MIN in case you're accepting negative numbers too
for(int i = 1; i <= n; i++)
{
int p;
cin >> p;
//if you need to be based ONLY on user input
if(p > max) max = p;
//if you need to be based on BOTH user input and current i
//if(p+i > max) max = p+I;
//if you need to be based on ONLY current i
//if(i > max) max = i;
q.push(make_pair(p, i));
}
ありがとうございましたU @msoliman –
私はあなたを助けることができてうれしかった – msoliman
これまでに何をしていますか? – DFord
'キュー<ペア> q; for(int i = 1; i <= n; i ++){ \t int p; \t cin >> p; \t q.push(make_pair(p、i)); } ' このコードで最大値を探したい場合は... –
は、最初の要素と等しいvar maxを定義します。キューからすべての要素を1つずつポップまたはデキューし、現在の要素が最大値より大きい場合に定義した最大変数と比較するたびに最大要素を持つ最後の最大値を指定します。 – msoliman