C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++でプログラムを作成して、ソートされていない整数の配列の最大値と2番目の最大値を見つけます。


サイズNのソートされていない整数の配列を指定したとしましょう。タスクは、配列に存在する個別の最大要素と2番目の最大要素を見つけることです。配列には重複する要素も含まれる場合があります。したがって、明確な要素のみを見つける必要があります。たとえば、

入力-1

N = 5
A[ ] = { 2, 2, 1, 3, 4 }

出力

4 3

説明 −与えられた配列から、「4」が最大で、「3」が2番目に大きいことがわかります。

入力-2

N = 4
A[ ] = { 1,3,3,2 }

出力

3 2

説明 −サイズ4の指定された配列から、「3」が最大で「2」が2番目に大きいことがわかるため、出力として32を返します。

この問題を解決するためのアプローチ

サイズNの指定された配列には、重複する要素も含まれている可能性があります。配列から最大要素と2番目の最大要素を見つけるために、最大と2番目の最大を格納する2つの変数を初期化できます。

最初に、現在の要素がmaxより大きい場合、その値をmaxに格納し、max(previous)の値を2番目のmaxに格納します。

個別の要素を見つけるために、現在の要素がmaxに等しいかどうかを確認します。現在の値が最大値と等しくなく、2番目の最大値よりも大きい場合は、2番目の最大値の以前の値を現在の値に置き換えます。

  • 配列のNサイズを初期化して入力します。

  • 関数maxAndSecondMax(int arr []、int size)は、入力として配列を受け取り、配列のサイズを取ります。これは、指定された配列の最大要素と2番目の最大要素を返します。

  • 配列要素を反復処理し、現在の要素が最大値より大きいかどうかを確認してから、現在の値を最大値に保存し、前の値を2番目の最大値で最大値に格納します。

  • それ以外の場合、現在の値が2番目の最大値より大きい場合は、前の値を現在の値に置き換えます。また、現在の値は最大値と等しくてはなりません。

  • 2番目の最大値に値が含まれていないかどうかを確認します。

  • 最大値と2番目の最大値を最終出力として返します。

#include<bits/stdc++.h>
using namespace std;
void maxAndSecondMax(int *arr, int size){
   int max= INT_MIN;
   int s_max= INT_MIN;
   for(int i=0;i<size; ++i){
      if(arr[i] >max){
         s_max= max;
         max= arr[i];
      }
      else if(arr[i]> s_max && arr[i]!= max){
         s_max= arr[i];
      }
   }
   if(s_max==INT_MIN){
      s_max= -1;
   }
   cout<<max<<" "<<s_max;
}
int main(){
   int N= 6;
   int A[N]= {1,3,2,5,6,3};
   maxAndSecondMax(A,N);
   return 0;
}

出力

上記のコードを実行すると、出力は次のように出力されます。

6 5

6 および5 最大値と2番目の最大値である配列内の個別の要素です。


  1. C++でツリーの最大の深さまたは高さを見つけるプログラムを作成する

    この問題では、二分木が与えられます。私たちの仕事は、与えられた木の最大の深さまたは高さを見つけるプログラムを書くことです。 問題を理解するために例を見てみましょう 木の高さは3です。 ツリーの最大の高さを見つけるために、その左右のサブツリーの高さを確認し、両方の最大値に1を追加します。これは再帰的なプロセスであり、ツリーの最後のノードが検出され、サブツリーの高さを検出するために1つが段階的に追加されます。 上記の例は、この方法を使用して解決されました。 木の高さを見つける、つまり、height(3)=max(height(5)、height(7))+1。 このために、値5

  2. ソートされていない整数の特定の配列で欠落している正の数を見つけるために、Javaでプログラムを作成します

    ソートされていない整数の配列を指定したとしましょう。タスクは、[0からn]の範囲で指定された配列に存在しない正の欠落数を見つけることです。たとえば、 入力-1 − N = 9 arr = [0,2,5,9,1,7,4,3,6] 出力 − 8 説明 −指定されたソートされていない配列では、「8」が欠落している唯一の正の整数であるため、出力は「8」になります。 入力-2 − N = 1 arr = [0] 出力 − 1 説明 −指定された配列では、「1」が欠落している唯一の正の整数であるため、出力は「1」です。 この問題を解決するためのアプローチ この特定の問題を解決するため