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

削除操作後に配列の縮小サイズを見つけるC++プログラム


n個の要素を持つ配列Aがあるとします。 n個の正の整数を持つパスワードがあると考えてください。配列に次の操作を適用します。操作は、互いに同じではない2つの隣接する要素を削除し、それらの合計をその場所に配置することです。したがって、この操作により、配列のサイズが1つ小さくなります。これらの操作を実行した後、配列の可能な限り短い長さを見つける必要があります。

したがって、入力がA =[2、1、3、1]の場合、出力は1になります。これは、(1、3)を選択すると、配列が[2、4、1]になるため、 (2、4)を使用して配列[6、1]を作成し、最後の2つを選択して[7]を取得します。

ステップ

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

n := size of A
Define one set se
for initialize i := 0, when i < n, update (increase i by 1), do:
   insert A[i] into se
if size of se is same as 1, then:
   return n
Otherwise
   return 1

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

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

int solve(vector<int> A) {
   int n = A.size();
   set<int> a;
   for (int i = 0; i < n; i++) {
      a.insert(A[i]);
   }
   if (a.size() == 1)
      return n;
   else
      return 1;
}
int main() {
   vector<int> A = { 2, 1, 3, 1 };
   cout << solve(A) << endl;
}

入力

{ 2, 1, 3, 1 }

出力

1

  1. C++で三角形の図心を見つけるプログラム

    この問題では、三角形の3つの頂点の座標を示す2D配列が与えられます。私たちのタスクは、C++で三角形のセントロイドを見つけるプログラムを作成することです。 セントロイド 三角形の3つの中央値は、三角形の3つの中央値が交差する点です。 中央値 三角形の頂点は、三角形の頂点とその反対側の線の中心点を結ぶ線です。 問題を理解するために例を見てみましょう 入力 (-3, 1), (1.5, 0), (-3, -4) 出力 (-3.5, -1) 説明 Centroid (x, y) = ((-3+2.5-3)/3, (1 + 0 - 4)/3) = (-3.5, -1) ソリューションアプロ

  2. C++で平行四辺形の面積を見つけるプログラム

    この問題では、平行四辺形の底と高さを表す2つの値が与えられます。私たちのタスクは、C++で平行四辺形の領域を見つけるプログラムを作成することです。 平行四辺形 は、反対側が等しく平行な4辺の閉じた図形です。 問題を理解するために例を見てみましょう 入力 B = 20, H = 15 出力 300 説明 平行四辺形の面積=B* H =20 * 15 =300 ソリューションアプローチ この問題を解決するために、平行四辺形の面積の幾何学的公式を使用します。 Area = base * height. ソリューションの動作を説明するプログラム 例 #include <io