C++でチーム数を数える
n人の兵士が並んでいると仮定します。ここでは、各兵士に一意の評価値が割り当てられています。次のルールを使用して、3人の兵士のチームを作成する必要があります-
レーティング(rating [i]、rating [j]、rating [k])となるように、インデックス(i、j、k)を持つ兵士を3人選択します。
チームは、−(rating [i]
形成できるチームの数を見つける必要があります。 (兵士は複数のチームに参加できます)。
したがって、入力がrating =[2,5,3,4,1]のようである場合、(2,3,4)、(5,4,1)のような3つのチームを形成できるため、出力は3になります。 、(5,3,1)。
これを解決するには、次の手順に従います-
-
ret:=0、n:=vのサイズ
-
初期化i:=0の場合、i
-
初期化j:=i + 1の場合、j
-
初期化k:=j + 1の場合、k
-
v [i]
-
(retを1増やします)
-
-
それ以外の場合、v [i]>v[j]およびv[j]>v [k]の場合、-
-
(retを1増やします)
-
-
-
-
-
retを返す
例
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; class Solution { public: int numTeams(vector<int>& v) { int ret = 0; int n = v.size(); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { for (int k = j + 1; k < n; k++) { if (v[i] < v[j] && v[j] < v[k]) ret++; else if (v[i] > v[j] && v[j] > v[k]) ret++; } } } return ret; } }; main(){ Solution ob; vector<int> v = {2,5,3,4,1}; cout << (ob.numTeams(v)); }
入力
{2,5,3,4,1}
出力
3
-
C++五胞体数
五胞体数は、パスカルの三角形の5番目の数として表されます。ご存知のように、これは5番目の数字です。つまり、パスカルの三角形に少なくとも5つの数字が必要です。したがって、このシリーズの最初の数字は 1 4 6 4 1から始まります。 パスカルの三角形の4行目。したがって、このチュートリアルでは、たとえば、n番目の五胞体数を見つける必要があります Input : 1 Output : 1 Input : 4 Output : 35 次の図から出力を確認できます- この問題については、可能な限り、これは一種のシリーズであるため、ソリューションでこのシリーズのパターンを見つけようと
-
C++で長方形の正方形の数を数える
=Bとなるように、長さL、幅Bの長方形が与えられます。目標は、サイズLXBの長方形が収容できる正方形の数を見つけることです。 上の図は、サイズ3 X 2の長方形を示しています。2、2X2の正方形、6,1X1の正方形があります。 総正方形=6+ 2=8。 サイズLXBのすべての長方形には、1X1の正方形のL*B数があります。 最大の正方形のサイズはBXBです。 L =B =1の場合、正方形=1。 L =B =2の場合、正方形=1 + 4 =5(2X2の1、1X1の4) L =B =3の場合、正方形=1 + 4 + 9 =14(3X3の1、2X2の4、1