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

キーボードの可能な最小数を見つけるためのC++プログラムが盗まれた


n個の要素を持つ配列Aがあるとします。昨夜強盗が行われた電気店がありました。ストア内に存在するすべてのキーボードは、整数xから昇順で番号が付けられました。たとえば、x =4で、ストアに3つのキーボードがある場合、デバイスのインデックスは4、5、6になります。x=10で7つある場合、キーボードのインデックスは10、11、12、13になります。 14、15、16。強盗の後、n個のキーボードだけが残ります。配列Aにインデックスが格納されています。盗まれたキーボードの可能な最小数を見つける必要があります。

したがって、入力がA =[10、13、12、8]の場合、出力は2になります。これは、x =8の場合、盗まれたキーボードの最小数が2であるためです。インデックス9および11のキーボードが盗まれました。

ステップ

これを解決するには、次の手順に従います-

sort the array A
n := size of A
return A[n - 1] - A[0] + 1 - n

理解を深めるために、次の実装を見てみましょう-

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

int solve(vector<int> A) {
      sort(A.begin(), A.end());
int n = A.size();
   return A[n - 1] - A[0] + 1 - n;
}
int main() {
   vector<int> A = { 10, 13, 12, 8 };
   cout << solve(A) << endl;
}

入力

{ 10, 13, 12, 8 }

出力

2

  1. C++で対戦相手を捕まえるために必要な最小ステップ数を見つけるためのプログラム

    [u、v]の形式のツリーエッジのリストがあると仮定します。これは、uとvの間に無向エッジがあることを示します。また、xとyの2つの値があります。ノードxにいて、対戦相手がノードyにいる場合。最初のラウンドでは移動し、次のラウンドでは対戦相手が移動します。対戦相手は、ラウンドで移動しないことを選択できます。対戦相手を捕まえるのに必要な最小ラウンド数を見つける必要があります。 したがって、入力がedges =[[0、1]、[0、2]、[1、3]、[1、4]]、x =0、y =3のような場合、出力は3になります。最初と同じように、ノード0から1に移動します。その後、対戦相手は現在のノード3に留まり

  2. C ++で75%を維持するために出席する講義の最小数を見つけるためのプログラム

    この問題では、現在のデータまでに開催されたクラスの総数と、学生が参加したクラスの数をそれぞれ表す2つの数字MとNが与えられます。私たちの仕事は、C ++で75%を維持するために、出席する講義の最小数を見つけるプログラムを作成することです。 問題の説明 これは、75%の出席率を維持するための大学生の最大の懸念事項の1つです。このプログラムは、75%の出席を得るために、学生が定期的に出席する講義の最小数を計算します。 問題を理解するために例を見てみましょう 例1 入力 :M =32、N =20 出力 :16 説明 75%以上の出席を達成するには、学生は少なくとも16回の講義に出席す