-
C++で文字列回文を作成するために必要な追加の最小数
問題の説明 文字列を指定して、文字列回文を作成するために追加する最小文字を見つけます。 例 文字列がabcacの場合、2つのハイライト文字、つまりabcacbaを追加することで文字列回文を作成できます アルゴリズム 文字列がすでに回文であるかどうかを確認します。ある場合は、文字を追加する必要はありません。 文字列から1文字ずつ削除し、残りの文字列が回文であるかどうかを確認します 弦がパリドロームになるまで上記のプロセスを繰り返します 最終回答までに削除された文字数を返します 例 #include <iostream> #include <cstring> usi
-
C++でKグラスを満たすために必要なボトルの最小数
問題の説明 与えられたN個のグラスに水があり、それぞれの容量のリスト。タスクは、正確にK個のグラスに記入するために必要なボトルの最小数を見つけることです。各ボトルの容量は100ユニットです。 例 N =5、K =4の場合、capacity [] ={1、2、3、2、1}。 容量2、3、2でグラスを充填するには、8ユニットが必要です。 この方法では、1本のボトルを開けるだけで十分です。 アルゴリズム Kメガネを正確に記入するには、容量が最小のKメガネを使用してください 必要なボトルの合計は、次のように計算できます- (1番目のkグラスの容量の合計)/(1本のボトルの容量)の天井
-
C++で有効にするために追加する括弧の最小数
問題の説明 括弧の文字列が与えられます。開き括弧’(‘または閉じ括弧‘)’をコンテナ化できます。結果の括弧文字列を有効にするには、最小数の括弧を見つける必要があります。 例 str =“((()”の場合、文字列の最後に2つの閉じ括弧、つまり‘))’が必要です アルゴリズム 開き括弧を数える 閉じ括弧を数える 必要な括弧=abs(開き括弧の数–閉じ括弧の数) 例 #include <iostream> #include <string> #include <cmath> using namespace std; int requiredParenthe
-
C++で最初のN個の数値の順列をソートするためのプレフィックス反転の最小数
説明 最初のN個の数の順列を持つN個の数の配列が与えられます。 1回の操作で、任意のプレフィックスを逆にすることができます。タスクは、配列内の番号が昇順で並べ替えられるように、そのような操作の最小数を見つけることです。 例 配列が{1、2、4、3}の場合、配列を昇順で並べ替えるには、最低3つの手順が必要です- 配列全体を逆にする{3、4、2、1} 最初の2つの要素を逆にします{4、3、2、1} 配列全体を反転する{1、2、3、4} アルゴリズム 指定された数値を文字列にエンコードします。配列を並べ替えて、文字列の宛先にエンコードします。 次に、最初の順列からBFSを実行します。
-
C++でのY未満の数のセットの最小数
問題の説明 連続する数字の文字列と数字のYが与えられた場合、タスクは、すべてのセットが以下のルールに従うように最小セットの数を見つけることです- セットには連続した数字が含まれている必要があります 数字を複数回使用することはできません。 セット内の数はYを超えてはなりません。 例 str =“ 1234”およびY =20の場合、以下のセットが作成されるため、答えは3です- {12}{3}および{4} アルゴリズム 文字列を数値に変換 数値がY以下の場合は、f=1とマークします 数値がYを超える場合は、f =1の場合はカウントを増やし、fを0として再初期化し、numをs [i]-‘0
-
C++で合計がNに等しい必要な1桁の素数の最小数
問題の説明 合計がNに等しくなる必要な1桁の素数の最小数を見つけます。 例 N =9の場合、合計9を作成するには2つの素数、つまり7と2が必要です。 例 #include <iostream> using namespace std; bool isValidIndex(int i, int val) { return (i - val) < 0 ? false : true; } int getMinPrimes(int n) { int arr[n + 1]; for (int i = 1;
-
C++での平方フリー除数の最小数
問題の説明 整数Nが与えられます。平方自由除数の最小数を見つけます。 Nの因数分解は、完全な二乗ではない約数のみで構成する必要があります 例 N =24の場合、次の3つの正方形の自由係数があります- 因数=2* 6 * 2 アルゴリズム Nの平方根までのすべての素因数を見つける ここで、Nの平方根以下のすべての素因数を検討し、各素因数について、その最大累乗を数Nで見つけます(24の2の最大累乗は3です) これで、素因数の累乗がNで1より大きい場合、それ自体とグループ化できないことがわかりました(たとえば、2の累乗は24で3であるため、2 x 2=4または2x2 x 2 =8は、24
-
C++でのゲームの最後のモンスターの可能な最小の最終的な健康状態
問題の説明 N個のモンスターが与えられると、各モンスターの初期体力h[i]は整数になります。体力が0より大きい場合、モンスターは生きています。 各ターンで、ランダムモンスターは別のランダムモンスター、攻撃されたモンスターを殺し、その体力は攻撃しているモンスターの体力の量だけ減少します。このプロセスは、モンスターが1体残るまで続けられます。最後に残ったモンスターの可能な最小の健康状態はどうなりますか。 例 入力配列が{2、14、28、56}の場合、最初のモンスターだけが残りの3つのモンスターを攻撃し続けると、最後のモンスターの最終的な体力は2になり、最小であるため、出力は2になります。 ア
-
C++で配列を均等に分割するために必要な最小の正の整数
問題の説明 N個の正の整数の配列が与えられた場合、タスクは、配列の任意の2つの要素の間に配置できる最小の正の整数を見つけて、その前に発生するサブ配列内の要素の合計が、発生する要素の合計と等しくなるようにすることです。その後のサブ配列で、新しく配置された整数が2つのサブ配列のいずれかに含まれます 例 arr ={3、2、1、5、7、10}の場合、出力は6です。値6を5と7の間に置くと、左右のサブアレイの合計は次のように等しくなります- + 2 + 1 + 5 + 6 =17 7 + 10 =17 アルゴリズム 配列全体の合計をSで計算します アイデアは、インデックスi(それを含む)
-
| ai + aj –k|の可能な最小値C++で指定された配列とkに対して
問題の説明 n個の整数と整数Kの配列が与えられます。|ai+ aj – k|の絶対値となるような順序付けされていないペアの総数{i、j}を見つけます。 i!=jの場合は最小限に抑えられます。 例 arr [] ={0、4、6、2、4}およびk =7の場合、最小値を1として次の5つのペアを作成できます {0、6}、{4、2}、{4、4}、{6、2}、{2、4} アルゴリズム 可能なすべてのペアを反復処理し、各ペアについて、(ai + aj – K)の値が現在の最小値であるnotよりも小さいかどうかを確認します。したがって、上記の条件の結果として、合計3つのケースがあります- 最小-こ
-
Xの特定のAおよびBに対するXの可能な最小の正の整数値=C++のP*A + Q * B
問題の説明 AとBの値が与えられた場合、方程式X =P * A + Q * Bで達成できるXの最小の正の整数値を見つけます。ここで、PとQはゼロ、または任意の正または負の整数にすることができます。 例 A=2およびB=4の場合、答えは2になります。 アルゴリズム P*BおよびP*A – P*Bが最小の正の整数になるようにPとQを見つける必要があります。 この問題は、両方の数値のGCDを計算することで簡単に解決できます) 例 #include <iostream> using namespace std; int getGcd(int a, int b) {
-
C++でゲームに勝つために必要な最小プレーヤー
問題の説明 1 <=N<=1000000000および1<=K <=1000000000の場合、N個の質問と各質問にK個のオプションが与えられます。タスクは、すべての1 <=i<に対してi番目の質問を試みたプレーヤーの総数を決定することです。 =とにかくゲームに勝つためのk。プレーヤーの総数の合計を最小化し、109+7を法として出力する必要があります。 間違った答えはプレーヤーの排除につながることに注意してください 例 N=5およびK=2の場合、答えは62です。 アルゴリズム N thを解決するには 質問Kプレーヤーが必要です。 (N-1)を解決するには th 質問K2プレーヤーが
-
最大サイズ2の最小パーティションと、C++で指定された値によって制限される合計
問題の説明 正の数の配列arr[]が与えられた場合、次のプロパティを満たす配列内のセットの最小数を見つけます。 セットには、最大2つの要素を含めることができます。 2つの要素は連続している必要はありません。 セットの要素の合計は、指定されたキー以下である必要があります。与えられたキーが最大の配列要素以上であると想定される場合があります。 例 arr [] ={1、2、3、4}およびk =5の場合、次の2つのペアを作成できます- {1、4}および{2、3} アルゴリズム 配列を並べ替える ソートされた配列の2つのコーナーから2つのポインターを開始します。それらの合計が指定されたキー
-
C++で配列のXORをゼロにするための最小演算
問題の説明 n個の要素の配列が与えられます。タスクは、配列全体のXORを0にすることです。これを実現するには、次のようにします。 要素のいずれかを選択できます- 要素を選択した後、要素を1ずつインクリメントまたはデクリメントできます。 配列全体のXOR合計をゼロにするために、選択した要素に必要なインクリメント/デクリメント操作の最小数を見つける必要があります 例 arr [] ={2、4、7}の場合、1回の操作が必要です- 要素2を選択 1つ減らします 配列は{3、4、7}になり、そのXORは0になります アルゴリズム アレイ全体のXORを見つける ここで、要素arr [i]を
-
指定されたセットのMEXをC++でxに等しくするための最小操作
問題の説明 n個の整数のセットが与えられた場合、最小数の操作を実行して(セットに要素を挿入/セットから要素を削除できます)、セットのMEXをx(指定されたもの)に等しくします。 注 −整数のセットのMEXは、その中に存在しない最小の非負の整数です。たとえば、セット{0、2、4}のMEXは1であり、セット{1、2、3}のMEXは0です。 例 n=5およびx=3で、配列が{0、4、5、6、7}の場合、最低2つの操作が必要です アルゴリズム アプローチは、最終セットでx未満のすべての要素が存在する必要があり、xが存在してはならず、xより大きい要素は重要ではないことを確認することです。 したが
-
C++でバイナリ行列のすべての要素を設定するために必要な最小限の操作
問題の説明 N行M列のバイナリ行列が与えられます。マトリックスで許可される操作は、任意のインデックス(x、y)を選択し、左上が(0、0)、右下が(x-1、y-1)の長方形の間ですべての要素を切り替えることです。要素を切り替えるとは、1を0に、0を1に変更することを意味します。タスクは、行列のすべての要素を設定する、つまりすべての要素を1にするために必要な最小限の操作を見つけることです。 例 If input matrix is {0, 0, 0, 1, 1} {0, 0, 0, 1, 1} {0, 0, 0, 1, 1} &n
-
GoとC++の違い。
行く Goは手続き型プログラミング言語です。プログラムはパッケージを使用して組み立てられます。動的言語に似たパターンを採用する環境をサポートします。 C ++ C++はオブジェクト指向プログラミング言語です。 C ++は静かで高速、信頼性が高く、安全です。最も広く使用されている言語でもあります。 GoとC++の重要な違いは次のとおりです。 Sr。いいえ。 キー 移動 C ++ 1 タイプ Goは手続き型プログラミング言語であり、動的言語と同様のパターンをサポートします。 C++はオブジェクト指向プログラミング言語です。 2 クラスのサポート Goはコン
-
C++で幸せな女性の日のプログラムを書く
世界中で10月7日に祝われる女性の日は、次のようにc++プログラミングコードに刻まれています。 例 #include <iostream> using namespace std; int main(){ // Initializing size of // design int n = 5; // Loop to print Circle // (Upper part of design) // Outer loop to &
-
C++で文字列内のすべての文字を切り替えます
このプログラムは、文字列の文字を大文字に変換します。ただし、このタスクは、c ++クラスライブラリのtoUpper()メソッドを使用して簡単に実行できます。しかし、このプログラムでは、大文字の文字のASCII値を計算することによってこれを実行します。アルゴリズムは次のとおりです。 アルゴリズム START Step-1: Declare the array of char Step-2: Check ASCII value of uppercase characters which must grater than A and lesser
-
C++で上部の対角線を下部と交換します
このチュートリアルは、c ++コードを使用して、3つの対角配列の上の行を下の行に交換するように設計されています。さらに、3対角配列が入力である場合、切望される結果は次のようなものでなければなりません。 このために、アクションのコースは次のようにアルゴリズムで簡単に説明されます; アルゴリズム Step-1: Input a diagonal array Step-2: Pass it to Swap() method Step-3: Traverse the outer loop till 3 Step-4: increment j= i+ 1 in the inner loop t