-
C++での0と1のセグメントの最大長
問題の説明 1と0で構成される文字列が与えられます。タスクは、各セグメントの1の数が0より大きくなるように文字列のセグメントの最大長を見つけることです 例 入力文字列が「10111000001011」の場合、答えは次のように12になります- 最初のセグメントの長さは710111000001011 2番目のセグメントの長さは510111000001011 全長は(セグメント1 +セグメント2)=(7 + 5)=12の長さです アルゴリズム start ==nの場合、0を返します。 開始からnまでループを実行し、サブアレイごとにnまで計算します。 文字が1の場合は、1のカウントをインク
-
C++で最初と最後の要素が同じであるサブ配列の最大長
この問題では、文字の配列が与えられます。私たちのタスクは、C++で最初と最後の要素が同じであるサブ配列の最大長を出力するプログラムを作成することです。 問題を理解するために例を見てみましょう 入力 −配列={t、u、t、o、r、i、a、l、s、p、o、i 、 n、 t} 出力 − 14 説明 − サブアレイ{t、u、t、o、r、i、a、l、s、p、o、i 、n、t}はtで始まりtで終わります。 この問題を解決するために、配列内の最初と最後の文字を見つけて、式-を使用します。 サブアレイの長さ=lastOccurrence-firstOccurrence+ 1 すべ
-
C++でarr[i]>=arr[j]である配列のすべてのペアの最大モジュロ
=arr[j]である配列のすべてのペアの最大モジュロを見つけるプログラムを作成することです。 =arr[j]です。 問題を理解するために例を見てみましょう 入力 − arr [] ={3、5、9} 出力 − 4 説明 − All possible Pairs arr[i] and arr[j], 5, 3 => 5%3 = 2 9, 3 => 9%3 = 0 9, 5 => 9%5 = 4 この問題を解決するために、単純で直接的なアプローチで2つのネストされたループを実行し、可能なすべてのペアのモジュロを見つけます。次に、それらの最大値を見つけます。ただし
-
C++の2つのグループから形成される3人のチームの最大数
この問題では、2つの整数NとMが与えられます。Nはグループ1の人数、Mはグループ2の人数です。 2つのグループから形成された3人のチームの最大数を見つけるプログラム。 これらのグループから最大のチームを作ることができる人を選んで、3人のチームを作ります。各チームには、各グループから少なくとも1人が必要です。 問題を理解するために例を見てみましょう 入力 − n =5、M =3 出力 − 2 説明 − チームは次のようになります- Team 1: Group 1 Member->2 ; Group 2 Member->1 Left in Group 1 = 3 ;
-
C++の2部グラフのエッジの最大数
問題の説明 頂点の数を表す整数Nが与えられます。タスクは、N個の頂点の2部グラフで可能な最大数のエッジを見つけることです。 2部グラフ 2部グラフは、2セットの頂点を持つグラフです。 このセットは、同じセット内の頂点がそれらの間でエッジを共有しないようになっています。 例 N =10の場合、合計25個のエッジがあります- 両方のセットに5つの頂点が含まれ、最初のセットのすべての頂点には、2番目のセットの他のすべての頂点へのエッジがあります したがって、エッジの合計は5 * 5=25になります アルゴリズム エッジの数は、特定のセットのすべての頂点が他のセットの他のすべての頂点に
-
C++で2部グラフを維持するためにツリーに追加されるエッジの最大数
問題の説明 ツリーは常に2部グラフです。これは、レベルが交互になっている2つの互いに素なセットにいつでも分割できるためです。 つまり、交互のレベルが同じ色になるように、常に2つの色で色付けします。タスクは、最大数を計算することです。 2部グラフのままにするためにツリーに追加できるエッジの数。 例 ツリーエッジは、次のように頂点ペアで表されます- {1、2} {1、3} {2、4} {3、5}次に、2部グラフを維持するためにさらに2つのエッジが必要です 彩色グラフでは、2つの異なるセットからのグラフ{1、4、5}と{2、3}。以来、1は2と3の両方から接続されています エッ
-
C++で最大1つのスワップを使用する固定小数点の最大数
問題の説明 0からN-1までのN個の要素の順列が与えられます。固定小数点は、値がインデックスと同じであるインデックスです。つまり、arr [i]=iです。最大1つのスワップを行うことができます。取得できる固定小数点の最大数を見つけます。 例 入力配列が{0、1、2、3、4、6、5}の場合、答えは7です。 固定小数点を調整するには、6と5を入れ替える必要があります この配列全体が固定小数点になり、固定小数点の最大値が7になった後。 アルゴリズム 入力配列内の各要素の位置を保持する配列posを作成します ここで、配列をトラバースし、次の場合があります- の場合、a [i]=i。カウントを
-
C++で指定されたサイズのサブ配列内の一意の整数の最大数
この問題では、サイズnと数値Mの配列が与えられます。私たちのタスクは、サブで一意の整数の最大数を見つけるプログラムを作成することです。指定されたサイズの配列。 ここでは、一意の要素の数が最大であるサイズMのサブ配列を見つける必要があります。 問題を理解するために例を見てみましょう 入力 −配列={4、1、2、1、4、3}。 M =4 出力 − 4 説明 − All possible combinations of sub-arrays of size 4. {4, 1, 2, 1} = 3 unique elements {1, 2, 1, 4} = 3 unique ele
-
C++の2つの異なる配列のサブ配列の最大OR合計
問題の説明 正の整数の2つの配列が与えられます。各アレイから同じサイズの2つのサブアレイを選択し、2つのサブアレイの可能な最大OR合計を計算します。 例 arr1 [] ={1、2、4、3、2}およびの場合 Arr2 [] ={1、3、3、12、2}次に、次の2つのサブ配列を作成すると最大の結果が得られます- Subarr1 [] ={2、4、3}および Subarr2 [] ={3、3、12} アルゴリズム 以下の式を使用して結果を得ることができます- f(a, 1, n) + f(b, 1, n) 例 #include <bits/stdc++.h> using
-
C++のバイナリツリーの最大パス合計
この問題では、各ノードに値が含まれる二分木が与えられます。私たちのタスクは、二分木の2つの葉の間の最大パスの合計を見つけるプログラムを作成することです。 ここでは、値の最大合計を提供する、あるリーフノードから別のリーフノードへのパスを見つける必要があります。この最大合計パスには、ルートノードを含めることができます/含めることができません。 二分木 は、各ノードが最大2つの子ノードを持つことができるツリーデータ構造です。これらは左の子と右の子と呼ばれます。 例 − 問題を理解するために例を見てみましょう- 入力 −//二分木… 出力 − 24 説明 −リーフノード− 2から9へ
-
C++の三角形の最大パス合計
この問題では、三角形の形の数字が与えられます。私たちのタスクは、三角形の最大パス合計を見つけるプログラムを作成することです。 要素は、最初の行から1つの要素で始まり、次の行で要素の数を増やして、n番目の行に要素が入るまで配置されます。 したがって、プログラムは、三角形の要素の最大合計を提供するパスを見つけます。したがって、最大の合計を提供するパスを見つける必要があります。 問題を理解するために例を見てみましょう- 入力 − 1 5 6 8 2 9 出力 − 16 説明 − 上からのパスは最大合計を返します− 9 + 6 + 1 =16 この問題を
-
C++の逆三角形の最大パス合計
この問題では、逆三角形の形で数字が与えられます。私たちのタスクは、逆三角形の最大パス合計を見つけるプログラムを作成することです。 逆三角形 数値の形式は、最初の行にn個の要素が含まれ、2番目の行にn-1が含まれる場合の配置です。 ここでは、各行から1つの要素を追加することによって3が得られる最大の合計を見つける必要があります。 問題を理解するために例を見てみましょう- 入力 − 5 1 9 3 6 2 出力 − 17 説明 −ここで、パス内の可能な最大要素を考慮して、最後の行から一番上の行へのパスを見つけました。 この問題を解決するために、最小コス
-
C++で長さ「k」のすべての部分文字列をベース「b」から10進数に変換します
このチュートリアルでは、長さ「k」のすべての部分文字列を基数「b」から10進数に変換するプログラムについて説明します。 このために、特定の長さの文字列が提供されます。私たちのタスクは、サイズ「k」の指定された文字列から部分文字列を取得し、基数「b」から10進数に変換することです。 例 #include <bits/stdc++.h> using namespace std; //converting the substrings to decimals int convert_substrings(string str, int k, int b){ f
-
任意の二分木をC++でChildrenSumプロパティを保持するツリーに変換します
このチュートリアルでは、任意の二分木を子の合計プロパティを保持するツリーに変換するプログラムについて説明します。 このために、バイナリツリーが提供されます。私たちのタスクは、それを子の合計プロパティに従う二分木に変換することです。ただし、制限は、ノードに存在する値のみをインクリメントでき、ツリーの構造を変更したり、ノードの値をデクリメントしたりすることはできないということです。 例 #include<iostream> #include<bits/stdc++.h> using namespace std; //node structure for binary tr
-
C++で配列を循環二重リンクリストに変換する
このチュートリアルでは、配列を循環二重リンクリストに変換するプログラムについて説明します。 このために、アレイが提供されます。私たちのタスクは、配列の要素を取得して、循環二重リンクリストに変換することです。 例 #include<iostream> using namespace std; //node structure for doubly linked list struct node{ int data; struct node *next; struct node *prev; }; //no
-
C ++で配列を誘導型(ハッシュ)に変換する
このチュートリアルでは、ハッシュを使用して配列を誘導型に変換するプログラムについて説明します。 このために、アレイが提供されます。私たちのタスクは、0からn-1の範囲の要素のみが含まれるように、指定された配列を誘導型に変換することです。 例 #include <bits/stdc++.h> using namespace std; //converting array to its reduced form void convert(int arr[], int n){ // copying the elements of array &n
-
C ++で配列を誘導型に変換する(ペアのベクトルを使用)
このチュートリアルでは、ペアのベクトルを使用して配列を誘導型に変換するプログラムについて説明します。 このために、アレイが提供されます。私たちのタスクは、0からn-1の範囲の要素のみが含まれるように、指定された配列を縮小形式に変換することです。 例 #include <bits/stdc++.h> using namespace std; //converting array to its reduced form void convert(int arr[], int n){ //creating a vector of pairs &n
-
C++で配列をジグザグ形式に変換します
このチュートリアルでは、配列をジグザグ形式に変換するプログラムについて説明します。 このために、個別の要素を含む配列が提供されます。私たちのタスクは、指定された配列の要素を、前の要素と比較して、より大きな要素とより小さな要素を交互にジグザグに再配置することです。 例 #include <iostream> using namespace std; //converting into zig-zag fashion void convert_zigzag(int arr[], int n) { //flag denotes the greater or s
-
C++でBSTを最大ヒープに変換する
このチュートリアルでは、二分探索木を最大ヒープに変換するプログラムについて説明します。 このために、二分探索木が提供されます。私たちのタスクは、要素がそれら自体と比較されるときにバイナリ検索ツリーの条件に従うように、指定されたバイナリ検索ツリーを最大ヒープに変換することです。 例 #include <bits/stdc++.h> using namespace std; //node structure of BST struct Node { int data; Node *left, *right; }; //node cr
-
C++でBSTを最小ヒープに変換する
このチュートリアルでは、バイナリ検索ツリーを最小ヒープに変換するプログラムについて説明します。 このために、二分探索木が提供されます。私たちのタスクは、指定されたバイナリ検索ツリーを最小ヒープに変換して、要素がそれら自体と比較されるときにバイナリ検索ツリーの条件に従うようにすることです。 例 #include <bits/stdc++.h> using namespace std; //node structure of BST struct Node { int data; Node *left, *right; }; //n