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

範囲のすべての要素がC++の配列に存在するように追加される要素


この問題では、n個の数で構成される配列arr[]が与えられます。私たちのタスクは、範囲のすべての要素が配列に存在するように、追加する要素の数を見つけるプログラムを作成することです。

問題の説明: ここでは、範囲のすべての要素が配列に存在することを確認するために、配列に追加する必要のある要素の数を見つける必要があります。範囲は配列の最小要素からです。 配列のlargestElementに。

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

入力: arr [] ={5、8、3、1、6、2}

出力: 2

説明:

範囲は1〜8です

追加する要素は4と7です。

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

この問題の簡単な解決策は、配列に存在しない範囲の要素を見つけることです。このためには、配列を並べ替えてから、次の要素が存在するかどうかを確認する必要があります。

アルゴリズム-

ステップ1: 配列を並べ替えます。

ステップ2: i->0からn-1の場合は配列をループします。

ステップ2.1: arr [i] + 1!=arr [i + 1]の場合、カウントを増やします。

ステップ3: 印刷回数。

ソリューションの動作を説明するプログラム

#include <bits/stdc++.h>
using namespace std;

int calcEleRequired(int arr[], int n)
{
   int count = 0;
   sort(arr, arr + n);
   for (int i = 0; i < n - 1; i++)
      if (arr[i]+1 != arr[i+1] )
         count ++;

   return count;
}

int main()
{
   int arr[] = { 5, 7, 3, 1, 6, 2 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"The number of elements required to complete the range is "<<calcEleRequired(arr, n);
   return 0;
}

出力-

The number of elements required to complete the range is 1

  1. C++で2つの要素が隣接しないような循環配列の最大合計

    この問題では、循環配列cirArr[]が与えられます。私たちのタスクは、C++で2つの要素が隣接しないように循環配列の最大合計を見つけるプログラムを作成することです。 問題の説明 循環配列の場合、隣接する要素を取得できないように、配列の要素の最大合計を見つける必要があります。つまり、代替要素を取得する必要があります。 循環アレイ は、配列の最後の要素が最初の要素に接続されている特殊なタイプの配列です。 問題を理解するために例を見てみましょう 入力 cirArr[] = {4, 1, 5, 3, 2} 出力 9 説明 最大合計循環サブシーケンスは[4、5、2]です。合計=9 ソリ

  2. 配列内のすべてのペアワイズ連続要素の絶対差(C ++)?

    この問題では、配列内の要素の各ペアの要素間の絶対差を取得する方法を確認します。 n個の要素がある場合、結果の配列にはn-1個の要素が含まれます。要素が{8、5、4、3}であると仮定します。結果は|8-5|になります=3、次に| 5-4 | =1、| 4-3 |=1。 アルゴリズム pairDiff(arr、n) begin    res := an array to hold results    for i in range 0 to n-2, do       res[i] := |res[i] – res