-
C++プログラムでバイナリインデックスツリーを使用した最大合計増加部分列
この問題では、n個の整数の配列arr[]が与えられます。私たちのタスクは、C++のバイナリインデックスツリーを使用して最大合計増加部分列を見つけるプログラムを作成することです。 問題の説明 −配列の要素を使用して、合計が最大になる増加部分列を見つける必要があります。 サブシーケンスの増加 −現在の要素の値が前の位置の要素よりも大きいサブシーケンス。 バイナリインデックスツリー −ツリーの一種であるデータ構造です。効果的な方法でツリーに要素を追加したり、ツリーから要素を削除したりできます。 問題を理解するために例を見てみましょう 入力 arr[] = {5, 1, 7, 3, 8, 2
-
C++プログラムのn個の配列からの昇順要素の最大合計
この問題では、サイズnXmの2次元行列が与えられます。私たちのタスクは、n個の配列から増加する次数要素の最大合計を見つけるプログラムを作成することです。 プログラムの説明 −ここでは、i番目の行の要素が(i + 1)番目の行の要素よりも小さくなるように、各行から1つの要素を取得して、要素の最大合計を見つける必要があります。等々。そのような合計が不可能な場合は、結果が不可能であることを示す-1を返します。 問題を理解するために例を見てみましょう 入力 mat[][] = { {4, 5, 1, 3, 6}, {5, 9, 2, 7, 12
-
C++プログラムの動的計画法を使用して2つが隣接しないようなバイナリツリーのノードの最大合計
この問題では、各ノードに値を持つバイナリツリーが与えられます。私たちのタスクは、2つが隣接しないようにバイナリツリー内のノードの最大合計を見つけるプログラムを作成することです。動的計画法を使用します。 問題の説明 −ノードが直接接続されないように合計が最大になるように、バイナリツリーのサブセットを選択します。 問題を理解するために例を見てみましょう 入力 出力 24 説明 Elements to be taken under consideration are: 8 + 5 + 9 + 2 = 24 ソリューションアプローチ この問題の解決策は、マップを使用して、ノードがmaxS
-
特定の違いを持つペアの最大合計C++プログラム
この問題では、n個の整数と数dの配列arr []が与えられます。私たちのタスクは、c++で特定の違いがあるペアの最大合計を見つけるプログラムを作成することです。 。 問題の説明 −ペアの要素の差がd未満になるようにペアを見つけます。そのようなすべてのペアの合計は最大でなければなりません。 問題を理解するために例を見てみましょう 入力 arr[] = {5, 9, 11, 7, 2, 12, 3} d = 5 出力 47 説明 Pairs that contribute to maximum sum: (3, 5), (7, 9), (11, 12). Sum = 3 + 5 + 7 +
-
C++プログラムで許可されている負の配列のペアワイズ積の最大合計
この問題では、n個の整数値(負の値を許可)を含む配列arr[]が与えられます。私たちのタスクは、負の値が許可された配列内のペアワイズ積の最大合計を見つけるプログラムを作成することです。 問題の説明 −ペアの要素の積の合計が最大になるように、配列の要素を使用してペアを作成する必要があります。 問題を理解するために例を見てみましょう 入力 arr[] = {−5, 2, 3, 7, −1, 1, −3, 12} 出力 104 説明 The pairs to be considered: (−5, −3), (2, 3), (&min
-
C++プログラムの配列の最小値と2番目に小さい値の最大合計
この問題では、配列arr[]が与えられます。私たちのタスクは、配列内の最小値と2番目に小さい値の最大合計を見つけるプログラムを作成することです。 問題の説明 −配列の合計サブ配列の最小要素と2番目に小さい要素の合計を見つける必要があります。そして、そのようなすべてのサブ配列の合計の最大値を返します。 例 問題を理解するために例を見てみましょう 入力 arr[] = {3, 5, 4, 2, 9, 1, 6} 出力 11 説明 Their out of all subarrays possible, {2, 9} has a maximum sum of smallest elements
-
C++プログラムの2つの配列の積の最大合計
この問題では、サイズnの2つの配列arr1[]とarr2[]が与えられます。私たちのタスクは、2つの配列の積の最大合計を見つけるプログラムを作成することです。 問題の説明 −2つの配列の積の最大合計を見つける必要があります。 arr1の1つの要素とarr2のその他の要素の積の最大合計を見つける必要があります。 問題を理解するために例を見てみましょう 入力 arr1[] = {3, 5, 6} arr2[] = {1, 4, 2} 出力 37 説明 Maximum sum of products: 6*4 + 5*2 + 3*1 = 24 + 10 + 3 = 37 ソリューションアプロー
-
C++プログラムで上から下へおよび戻るマトリックス内の最大合計パス
この問題では、サイズnXmの行列mat[][]が与えられます。私たちのタスクは、マトリックス内の最大合計パスを上から下、そしてその逆に見つけるプログラムを作成することです。 問題の説明 −左上から右下、そしてその逆の最大パス合計を見つける必要があります。 有効な移動 From mat[0][0] to mat[n−1][m−1]: Right (mat[i][j] to mat[i][j+1]) and Down (mat[i][j] to mat[i+1][j]). From mat[n−1][m−1] to mat[0][0]: left
-
C++プログラムの配列で距離<Kに2つの要素が表示されないようなサブシーケンスで可能な最大合計
この問題では、サイズnと整数kの配列arr[]が与えられます。私たちのタスクは、配列内の距離
-
C++プログラムで開始値と終了値が同じになるような最大合計サブ配列
この問題では、正の値で構成されるサイズnの配列arr[]が与えられます。私たちのタスクは、開始値と終了値が同じになるように最大合計サブ配列を見つけるプログラムを作成することです。 問題の説明 −ここで、インデックスi(サブアレイの開始インデックス)とj(サブアレイの終了インデックス)の要素が同じになるように、つまりarr [i] =arr[j]となるサブアレイを見つける必要があります。そして、サブアレイの要素の合計が最大化されます。 問題を理解するために例を見てみましょう 入力 arr[] = {2, 1, 3, 5, 6, 2, 4, 3} 出力 23 説明 All subarrays
-
C++プログラムで少なくともk個の離れた要素を持つ最大合計サブシーケンス
この問題では、サイズnと数kの配列arr[]が与えられます。私たちのタスクは、少なくともk個の離れた要素を持つ最大の合計サブシーケンスを見つけるプログラムを作成することです。 問題の説明 −サブ配列の要素が、インデックスがkの距離にあり、合計が最大化される配列から取得されるように、サブ配列の合計を見つける必要があります。 問題を理解するために例を見てみましょう 入力 arr[] = {2, 3, 7, 9, 2, 8, 3} 出力 15 説明 All subsequences that satisfy the given condition, {2, 9, 3}, Sum = 14 {3
-
2つの要素が隣接しないような最大合計C++プログラムの代替メソッド
この問題では、正の値で構成されるサイズnの配列arr[]が与えられます。私たちのタスクは、配列の2つの連続する要素がないように、最大のサブシーケンス合計を見つけるプログラムを作成することです。 問題の説明 −配列の要素を持つサブ配列の合計を見つける必要がありますが、配列の2つの隣接する要素を考慮することはできません。 例 問題を理解するために例を見てみましょう 入力 arr[] = {5, 2, 1, 9, 6} 出力 説明 − Subarray sum are : {5, 1, 6}, sum = 5 + 1 + 6 = 12 {2, 9}, sum = 2 + 9 = 11
-
C++プログラムでの最大重量差
この問題では、配列arr []と数値Mが与えられます。私たちのタスクは、C++での最大重み差を計算するプログラムを作成することです。 問題の説明 We will find M elements from the array such that the absolute difference between the sum and the sum of the rest elements is maximum. 問題を理解するために例を見てみましょう 入力 arr[] = {3, 1, 6, 9, 4} M = 3 出力 15 説明 4,6,9を検討します。合計は19です。残りの数の合計と
-
C++の有理数表現から10進数を表示するプログラム
(分子/分母)の形式で有理数を表す分子と分母と呼ばれる2つの数があるとします。その10進表現を文字列として見つける必要があります。循環小数がある場合は、それらを括弧で囲みます。 したがって、入力が分子=164分母=3のような場合、出力は「54.(6)」になります。 これを解決するには、次の手順に従います- 分子が0と同じ場合、- 「0」を返す 配列を定義します 分子0で分母<0の場合、- ansの最後に「-」を挿入 除数:=|分子| 配当:=|分母| 剰余:=除数mod配当 x:=(除数/被除数)を文字列に変換 iを初期化する場合:=0、i
-
C++で1つの文字列を別の文字列に変換する操作を取得するプログラム
2つの文字列SとTがあるとします。SをTに変更する操作の最短シーケンスを見つける必要があります。ここでの操作は、基本的に文字の削除または挿入のいずれかです。 したがって、入力がS =xxxy T =xxyyの場合、出力は[x、 x、 -x、 y、+y]になります。これは場所を意味します。最初の2つのx、次に3番目のxを削除し、次にyを配置してから、新しいyを追加します。 これを解決するには、次の手順に従います- サイズ505x505のテーブルdpを作成する 関数help()を定義します。これには、i、j、S、Tが必要です。 iがSのサイズと同じで、jがTのサイズと同じである場合、-
-
最初のプレーヤーがC++で文字ごとに文字列を形成できるゲームに勝つことができるかどうかを確認するプログラム
単語のリストがあるとします。次に、2人のプレイヤーが参加できるゴーストゲームについて考えてみましょう。ここでは、プレーヤーは文字列に文字を交互に追加します。また、作成される文字列は、リスト内の単語の有効なプレフィックスである必要があり、リスト内の単語を綴るプレーヤーは負けます。両方のプレーヤーが最適にプレーしているかどうか、最初のプレーヤーが勝つことができるかどうかを確認する必要があります。 したがって、入力がwords =[manage、 manager、 min]の場合、-のように再生できるため、出力はTrueになります。 m[プレーヤー1] ma[プレーヤー2] 男[プレーヤー1]
-
C++の加重パスを持つグラフで真であるクエリの数をカウントするプログラム
無向グラフのエッジリストがあり、各エッジに[u、v、w]フィールドがあり、uとvがソース頂点と宛先頂点であり、wが重みであるとします。また、同じ形式[u、v、w]のクエリのリストもあります。これは、パスの各エッジの重みが最大でwになるようなuとvの間にパスが存在するかどうかという問題を表しています。したがって、真のクエリの数を見つけてください。 したがって、入力がエッジのような場合=[[0、1、6]、[1、2、7]、[2、3、8]、[0、3、5]]クエリ=[[0、2、 14]、[1、0、3]] この場合、出力は1になります。これは、重み13でこのパス[0、1、2]をたどることでノー
-
C++ですべてのバナーを吊るすのに必要な最小ピン数を見つけるプログラム
[start、end]の形式の間隔のリストがあると仮定します。これは、ハングさせたいバナーの開始点と終了点を表しています。バナーを掛けるには少なくとも1つのピンが必要であり、1つのピンで複数のバナーを掛けることができます。すべてのバナーを吊るすのに必要な最小数のピンを見つける必要があります。 したがって、入力がintervals =[[2、5]、[5、6]、[8、10]、[10、13]]のような場合、2つのピンを所定の位置に配置できるため、出力は2になります。 5と10で、すべてのバナーを吊るします。 これを解決するには、次の手順に従います- 間隔の終了値に基づいて配列vを並べ替えます
-
C++で復元した後にすべての可能なIPアドレスを見つけるプログラム
数字のみの文字列があるとすると、可能なすべての有効なIPアドレスの組み合わせを形成して文字列を復元する必要があります。有効なIPアドレスは、単一のピリオド記号で区切られた正確に4つの整数(各整数は0〜255の範囲)で構成されていることがわかっています。 したがって、入力がip =25525511136の場合、出力は[254.25.40.123、 254.254.0.123]になります。 これを解決するには、次の手順に従います- 関数convertToNum()を定義します。これには、s、start、endが必要です。 num:=0 iを初期化する場合:=開始、i <=終了の場合、更
-
C++でk日間にわたって仕事を完了するための困難の最小合計を見つけるためのプログラム
ジョブと呼ばれる数値のリストと別の値kがあるとします。今、私たちはすべての仕事をkの異なる日に終えたいと思っています。ジョブは指定された順序で実行する必要があり、毎日1つのタスクを完了する必要があります。ジョブiの難易度はjobs[i]に保存され、1日のジョブのリストを完了する難易度は、その日に実行される最大の難易度のジョブになります。したがって、k個の異なる日にジョブを実行するための難しさの最小合計を見つける必要があります。 したがって、入力がjobs =[2、3、4、6、3] k =2のような場合、出力は8になります。最初に[2]を実行し、次に[3、4、6、3]を実行します。したがって、