2017-12-16 13 views
-3

このキューで最大値を探したいのですが、これをどのように解決できますか?このキューの最大値はどのようにして見つけることができますか?

queue<pair<int , int> > q; for(int i = 1; i <= n; i++){ int p; cin >> p; q.push(make_pair(p, i)); }

+0

これまでに何をしていますか? – DFord

+0

'キュー<ペア> q; for(int i = 1; i <= n; i ++){ \t int p; \t cin >> p; \t q.push(make_pair(p、i)); } ' このコードで最大値を探したい場合は... –

+0

は、最初の要素と等しいvar maxを定義します。キューからすべての要素を1つずつポップまたはデキューし、現在の要素が最大値より大きい場合に定義した最大変数と比較するたびに最大要素を持つ最後の最大値を指定します。 – msoliman

答えて

0

は、私がコメントを残してくださいいない場合は、このコードをチェックしてください私が正しくあなたの問題を理解願っていますし、私はそれはあなたが必要とするものは何でもすることを願っています。

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)); 

} 
+0

ありがとうございましたU @msoliman –

+0

私はあなたを助けることができてうれしかった – msoliman

関連する問題