-
C ++でBFSを使用して、1つの頂点から残りの頂点までのパスを見つける
この問題では、隣接リストとして表される有向グラフが与えられます。 私たちの仕事 BFSを使用して1つの頂点から残りの頂点までのパスを見つけるためのプログラムを作成する 。 BFS (幅優先探索)は、グラフを横方向に移動し、キューを使用して、反復で行き止まりが発生したときに、次の頂点を取得して検索を開始することを忘れないようにするアルゴリズムです。 問題を理解するために例を見てみましょう 入力 − 出力 S A <=S B <=A <=S C <=S D <=C <=S ソリューションアプローチ この問題を解決するために、グラフの各要素に対してBFS
-
C++でソートされた配列のフロア
この問題では、ソートされた配列arr[]と整数値xが与えられます。私たちのタスクは、並べ替えられた配列の床を見つけるプログラムを作成することです。 。 並べ替えられた配列のXのフロア 配列arr[]の最大要素であり、x以下です。 問題を理解するために例を見てみましょう Input: arr[] = {2, 5, 6, 8, 9, 12, 21, 25}, x = 10 Output: 9 説明 −上記の配列では、9は10以下の最大数です。 ソリューションアプローチ この問題の簡単な解決策は、配列をトラバースして、条件を満たす要素を見つけることです。アレイをトラバースしている間、 各
-
C++の同じ配列内のすべての要素のフロア
この問題では、整数要素の配列arr[]が与えられます。私たちのタスクは、同じ配列内のすべての要素の床を見つけるプログラムを作成することです。要素の床が存在する場合は床を印刷し、そうでない場合は-1を印刷します。 配列内の要素のフロア 配列内の要素以下の最も近い要素です。 問題を理解するために例を見てみましょう Input: arr[] = {3, 1, 5 ,7, 8, 2} Output: 2 -1 3 5 7 1 ソリューションアプローチ この問題を解決するためのアプローチは、ネストされたループを使用することです。 1つは配列の各要素をループし、内側の要素は配列内の要素のフロアを見
-
C++でバイナリリフティングを使用したN個の数値のプレフィックス合計のX以上の最初の要素
この問題では、N個の数値と整数値xで構成される配列arr[]が与えられます。私たちのタスクは、バイナリリフティングを使用して、N個の数値のプレフィックス合計からX以上の最初の要素を見つけるためのプログラムを作成することです。 。 プレフィックス合計 配列の要素の数は、各要素が最初の配列のそのインデックスまでのすべての要素の合計である配列です。 例-array[]={5、2、9、4、1} prefixSumArray [] ={5、7、16、20、21} 問題を理解するために例を見てみましょう Input: arr[] = {5, 2, 9, 4, 1}, X = 19 Outpu
-
C++のサイズkのすべてのウィンドウの最初の負の整数
この問題では、N個の整数値とサイズNのウィンドウで構成される配列arr []が与えられます。私たちのタスクは、サイズkのすべてのウィンドウで最初の負の整数を見つけるプログラムを作成することです。 。最初の負の数が存在する場合はそれを出力し、そうでない場合は0を出力し、負の数が存在しないことを示します。 問題を理解するために例を見てみましょう Input: arr[] = {-2, 2, -1, 4, 3, -6}, k = 2 Output: -2, -1, -1, 0, -6 説明 − Size of window k = 2, {-2, 2}, first negative is
-
C++のリンクリストで最初に繰り返されない
この問題では、サイズNのリンクリストLLが与えられます。私たちのタスクは、リンクリスト内で繰り返されないものを見つけるためのプログラムを作成することです。 。 リンクリストは一連のデータ構造であり、リンクを介して相互に接続されています。 問題を理解するために例を見てみましょう Input: LL = 4 => 6 => 2 => 4 => 1 => 2 => 6 => 5 Output: 1 説明 − The elements with a single occurrence frequency are 1 and 6. Out of the
-
指定された配列の最初の文字列で、その逆もC++の同じ配列に存在します
この問題では、サイズNの文字列str []の配列が与えられます。私たちのタスクは、指定された配列から最初の文字列を検索するプログラムを作成することです。この配列の逆も同じ配列に存在します 。 問題を理解するために例を見てみましょう Input: str[] = ["python", "program", "C#", "language", "#C"] Output: C# ソリューションアプローチ この問題を解決する1つの方法は、文字列配列の各要素を直接トラバースし、残りの配列の文字列のレ
-
C++の文字列からの最初のX母音
この問題では、サイズNと整数Xの文字列str[]が与えられます。私たちのタスクは文字列から最初のX母音を出力するプログラムを作成することです 。 文字列から最初のX母音を印刷し、X母音未満が存在する場合は、-1を印刷します。 問題を理解するために例を見てみましょう Input: str = "learn C programming language", X = 5 Output: e, a, o, a, i Vowels are a, e, i, o, u ソリューションアプローチ この問題の簡単な解決策は、文字列文字をチャーターでトラバースすることです。そして、文
-
C++でN番目の偶数フィボナッチ数を見つけるプログラム
この問題では、整数値Nが与えられます。私たちのタスクはN番目の偶数フィボナッチ数を見つけることです。 。 フィボナッチ数列は、前の2つの数値を加算することにより、後続の数値を生成します。フィボナッチ数列は、F0とF1の2つの数字から始まります。 F0とF1の初期値は、それぞれ0、1、または1、1にすることができます。 問題を理解するために例を見てみましょう Input : N = 4 Output : 144 ソリューションアプローチ この問題の簡単な解決策は、フィボナッチ数列の3つおきの数が偶数であり、偶数の数列も再帰式に従うという事実を使用することです。 フィボナッチ数列の再帰式
-
C++でDFSを使用して島の数を見つける
この問題では、2Dバイナリ行列が与えられます。私たちのタスクは、DFSを使用して島の数を見つけることです。 島 は、マトリックス内の1つ以上の接続された1のグラウンドです。 問題を理解するために例を見てみましょう Input : bin[][] = {{ 1 0 0 0} {0 1 0 1} {0 0 0 0} {0 0 1 0}} Output : 3 ExplanationIslands are −bin00 - bin11bin13bin32 ソリューションアプローチ DFSを使用して問題
-
C++で素集合を使用して島の数を見つける
この問題では、2Dバイナリ行列が与えられます。私たちのタスクは、DFSを使用して島の数を見つけることです。 。 島 は、マトリックス内の1つ以上の接続された1のグラウンドです。 問題を理解するために例を見てみましょう 入力 bin[][] = {{ 1 0 0 0} {0 1 0 1} {0 0 0 0} {0 0 1 0}} 出力 3 説明 Islands are : bin00 - bin11 bin13 bin32 ソリ
-
C++で与えられた方程式の解の数を見つけます
この問題では、3つの整数値A、B、Cが与えられます。私たちのタスクは、与えられた方程式の解の数を見つけることです。 。 方程式 X = B*Sm(X)^A + C ここで、Sm(X)はXの桁の合計です。 Xのすべての値を、Xが1から10 9までの任意の数である上記の式を満たすようにカウントする必要があります。 。 問題を理解するために例を見てみましょう 入力 A = 3, B = 6, C = 4 出力 3 ソリューションアプローチ この問題を解決するための解決策は、Xの値の数を数えることです。このため、桁の合計が重要な役割を果たします。最大桁合計は81です(最大値9999
-
C++を使用して階段のステップ数を見つける
この問題では、階段を作成するために提供されたレンガの数を示す番号Nが与えられます。私たちの仕事はf 階段の数を確認する 。 与えられたレンガを使用して、階段を作成する必要があります。各ステップは、最後のステップよりももう1つレンガを取ります。そして最初のステップは2つのレンガの高さです。レンガから作ることができるそのようなステップの数を見つける必要があります。 問題を理解するために例を見てみましょう 入力 N = 40 出力 3 説明 ステップ=1;必要なレンガ=2;使用されたレンガの合計=2;残りのレンガ=38 ステップ=2;必要なレンガ=3;使用されたレンガの合計=5;残
-
C++を使用してゼロの数を見つけます
この問題では、0と1のみで構成されるバイナリ配列bin[]が与えられます。私たちのタスクは、ゼロの数を見つけることです。 。 配列は並べ替えられます。つまり、すべての0は1の後に一緒に配置されます。 問題を理解するために例を見てみましょう 入力 arr[] = {1, 1, 1, 0, 0, 0, 0} 出力 4 ソリューションアプローチ この問題の簡単な解決策は、配列が並べ替えられているという事実を使用することです。つまり、配列内の0の数は、配列内で最初に出現する0を使用して見つけることができます。最初の発生後と同様に、すべての値はゼロになります。 配列内で最初に出現する0
-
C++を使用した入力文字列の最大出現文字
この問題では、小文字の入力文字列が与えられます。私たちの仕事はm 入力文字列の最大出現文字 。 同じ出現頻度の複数の値の場合、辞書式に小さい値を印刷する必要があります。 問題を理解するために例を見てみましょう 入力 string = “programming” 出力 g ソリューションアプローチ 問題の解決策を見つけるには、読み取った文字列を並べ替えてから文字列をトラバースして、文字列内で最大の出現数を持つ文字を見つける必要があります。この問題を克服するために、ハッシュ法(ハッシュテーブル法)を使用します。個々の文字をトラバースして文字の配列にハッシュす
-
C ++を使用して、範囲内で欠落している1つの番号を見つけます
この問題では、サイズnのarr[]が与えられます。私たちのタスクは、範囲内で欠落している1つの番号を見つけることです。 。 配列は、最小値から(最小+ n)までの範囲のすべての値で構成されます。範囲の1つの要素が配列から欠落しています。そして、この不足している値を見つける必要があります。 問題を理解するために例を見てみましょう 入力 arr[] = {4, 8, 5, 7} 出力 6 ソリューションアプローチ この問題の簡単な解決策は、配列を並べ替えて欠落している要素を検索し、配列には存在しないが範囲には存在する最小値から始まる範囲の最初の要素を見つけることです。 このソリュ
-
C++を使用して配列内の唯一の異なる要素を検索します
この問題では、サイズnのarr[]が与えられます。私たちの仕事はf 配列内の唯一の異なる要素を表示する 。 配列には2つの異なるタイプの要素しかありません。 1つを除いてすべての要素は同じです。 問題を理解するために例を見てみましょう 入力 arr[] = {1, 1, 1, 2, 1, 1, 1, 1} 出力 2 ソリューションアプローチ 問題を解決するための簡単なアプローチでは、配列をトラバースして、配列の他の要素とは異なる要素を見つける必要があります。このアプローチには、O(N 2 の時間計算量が必要です。 。 O(N)の問題を解決する別のアプローチは、ハッシュテーブ
-
C++を使用してb回出現する唯一の要素を検索します
この問題では、サイズnのarr[]と2つの整数aとbが与えられます。私たちの仕事はf b回出現する唯一の要素を見つける 。 配列内でb回発生する1つの値を除いて、配列のすべての値は1回発生し、その値を見つける必要があります。 問題を理解するために例を見てみましょう 入力 arr[] = {3, 3, 3, 3, 5, 5, 5, 1, 1,1,1} a = 4, b = 3 出力 5 ソリューションアプローチ この問題の簡単な解決策は、各要素の出現をカウントし、それを2Dマトリックスに格納することです。次に、行列をトラバースして、発生頻度bの値を見つけます。 このアプローチの
-
C ++を使用して、ソートされた配列で欠落している唯一の番号を検索します
この問題では、1からNまでの値を含むサイズNのarr []が与えられ、配列に1つの値がありません。私たちのタスクは、並べ替えられた配列で欠落している唯一の番号を見つけることです。 。 問題を理解するために例を見てみましょう 入力 arr[] = {1, 2, 3, 5, 6, 7} 出力 4 ソリューションアプローチ この問題の簡単な解決策は、ソートされた配列を線形にトラバースすることです。次に、arr [i] =(i + 1)であるという事実を使用して、欠落している値を確認します。 例1 ソリューションの動作を説明するプログラム #include <iostream&g
-
C ++を使用して、サイズnのソートされた配列内の唯一の繰り返し要素を検索します
この問題では、1からN-1までの値を含むサイズNのarr []が与えられ、1つの値が配列内で2回発生します。私たちのタスクは、サイズnのソートされた配列内の唯一の繰り返し要素を見つけることです 。 問題を理解するために例を見てみましょう 入力 arr[] = {1, 2, 3, 4, 5, 5, 6, 7} 出力 5 ソリューションアプローチ この問題を解決する簡単な方法は、線形探索を使用して、arr[i]とarr[i+1]の値が同じかどうかを確認することです。この場合、繰り返される値であるarr[i]を返します。 例1 ソリューションの動作を説明するプログラム #includ