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

C++の任意の2つの異なる数値のインデックス間の最大差を見つけるプログラム


この問題では、n個の整数で構成される配列arr[]が与えられます。私たちの仕事は、C++の任意の2つの異なる数値のインデックス間の最大の違いを見つけるプログラムを作成することです。

コードの説明 −ここでは、2つの整数が異なる場合、配列の整数値のインデックス間の最大差を見つける必要があります。

問題を理解するために例を見てみましょう

入力

arr[] = {4, 1, 3, 2, 1, 2, 4}

出力

5

説明

インデックス0、要素4とインデックス5、要素2の違い。

ソリューションアプローチ

配列からの一意の要素のインデックス間で可能な最大の違いを見つけようとします。

ソリューションの実装を示すプログラム

#include <iostream>
using namespace std;
int maximum(int a, int b){
   if(a > b)
      return a;
      return b;
}
int CalcMaxIndDiff(int a[], int n) {
   int indDiff1 = 0, indDiff2 = 0;
   int i = 0;
   while(i < (n - 1)){
      if(a[0] != a[i]){
         indDiff2 = i;
         break;
      }
      i++;
   }
   i = (n - 1) ;
   while(i > 0){
      if(a[0] != a[i]){
         indDiff1 = i;
         break;
      }
      i--;
   }
   return maximum(indDiff1, indDiff2);
}
int main() {
   int arr[] = { 4, 1, 3, 2, 1, 2, 4 };
   int n = 7;
   cout<<"The maximum difference between the index of any two different numbers is "<<CalcMaxIndDiff(arr, n);
   return 0;
}

出力

The maximum difference between the index of any two different numbers is 5

  1. C++で2つの異なる良好なノードの任意のペア間の最短距離を見つけます

    N個の異なるノードとM個のエッジを持つ特定の重み付き無向グラフがあるとすると、一部のノードは適切なノードです。 2つの異なる良好なノードの任意のペア間の最短距離を見つける必要があります。与えられた図では、次のグラフの黄色は適切なノードと見なされます。 したがって、入力が次のような場合 その場合、出力は11になります。これは、適切なノードのペアとそれらの間の距離が次のとおりであるためです。(1から3)距離は11、(3から5)距離は13、(1から5)距離は24、そのうち11が最小です。 これを解決するには、次の手順に従います- N:=100005 MAX_VAL:=999

  2. C++で任意の都市と駅の間の最大距離を見つける

    コンセプト 0からN-1までの番号が付けられたNの都市の数と、駅が配置されている都市に関して、私たちのタスクは、任意の都市とその最寄りの駅との間の最大距離を決定することです。駅のある都市は任意の順序で指定できることに注意してください。 入力 numOfCities = 6, stations = [2, 4] 出力 2 入力 numOfCities = 6, stations = [4] 出力 4 次の図は、6つの都市と、駅が緑色で強調表示されている都市を含む最初の例を示しています。したがって、この場合、最も近い駅からの最も遠い距離は2の距離で0です。したがって、最大距離は1です。