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

C++の任意の2つの要素間の最小の違いを見つける


Aというn個の要素の配列があるとします。その配列内の任意の2つの要素間の最小の差を見つける必要があります。 A =[30、5、20、9]とすると、結果は4になります。これは要素5と9の最小距離です。

この問題を解決するには、次の手順に従う必要があります-

  • 配列を降順ではない順序で並べ替えます

  • 差を無限として初期化します

  • ソートされた配列内のすべての隣接するペアを比較し、最小のペアを追跡します

#include<iostream>
#include<algorithm>
using namespace std;
int getMinimumDifference(int a[], int n) {
   sort(a, a+n);
   int min_diff = INT_MAX;
   for (int i=0; i<n-1; i++)
      if (a[i+1] - a[i] < min_diff)
         min_diff = a[i+1] - a[i];
   return min_diff;
}
int main() {
   int arr[] = {30, 5, 20, 9};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << "Minimum difference between two elements is: " << getMinimumDifference(arr, n);
}

出力

Minimum difference between two elements is: 4

  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です。