C ++

 Computer >> コンピューター >  >> プログラミング >> C ++
  1. C++の1つを除くすべての要素がk回出現する配列内の一意の要素

    配列Aがあります。Aにはすべての要素がm回出現しますが、1つの要素は1回だけ出現します。そのユニークな要素を見つける必要があります。 したがって、入力がA =[6、2、7、2、2、6、6]、m =3の場合、出力は7になります。 これを解決するには、次の手順に従います- INT_SIZE:=8*整数型変数のサイズ サイズの配列カウントを定義します:INT_SIZE。 0で埋めます iを初期化する場合:=0、i

  2. C++の二分木の最大連続増加パス長

    二分木があるとしましょう。昇順で連​​続する値を持つノードで構成される最長のパスの長さを計算する必要があります。すべてのノードは長さ1のパスとして扱われます。 したがって、入力が次のような場合 (11、12、13)が最大連続パスであるため、出力は3になります。 これを解決するには、次の手順に従います- 関数solve()を定義します。これにより、root、prev_data、prev_length、が取得されます。 ルートがゼロ以外の場合、- prev_lengthを返す cur_data:=ルートの値 cur_dataがprev_data+1と同じ場合、- solve(ル

  3. C++で異なるサイズのk個のソートされた配列をマージします

    異なるk個のソートされた配列があるとします。これらの配列をマージして、ソートされた結果を表示する必要があります。 したがって、入力がk =3のようで、配列が{2、4}、{3、5、7}、{1、10、11、12}の場合、出力は1 2 3 4 5 71011になります。 12 これを解決するには、次の手順に従います- 最初の要素が整数で、2番目の要素が別の整数のペアであるペアの1つのタイプを定義し、ppiという名前を付けます。 配列操作を定義する 1つの優先キューを定義するq iを初期化する場合:=0、i

  4. C ++でソートされた3つの異なる配列の(max(A [i]、B [j]、C [k])– min(A [i]、B [j]、C [k]))を最小化します。

    コンセプト 必ずしも同じサイズではない、与えられた3つのソートされた配列A、B、およびCに関して、最小値、つまり、任意のトリプレットA [i]、B [j]、C[k]の最大数と最小数の間の最小絶対差を計算します。それらがそれぞれ配列A、B、Cの下にあること、つまり、最小化(max(A [i]、B [j]、C [k])– min(A [i]、B [j]、C [k] ))。 入力 − A : [ 2, 5, 6, 9, 11 ] B : [ 7, 10, 16 ] C : [ 3, 4, 7, 7 ] 出力 − 1 説明 A [i] =6、B [j] =7、C [k] =7を選択する

  5. C ++で許可されている左、右、下、上への移動を伴う最小コストパス

    2D配列があるとします。各セルが、そのセルを通過するためのコストを表す数値コストで構成されている場合、左上のセルから右下のセルへのパスを見つける必要があります。これにより、総コストが最小になります。 したがって、入力が次のような場合 32 10 1 66 13 19 11 14 48 15 8 7 10 1 11 14 17 5 12 34 89 12 5 42 21 14 1 10 0 33 11 2 42 21 その

  6. C++でボードを正方形にカットするための最小コスト

    コンセプト 長さp、幅qのボードが与えられたとすると、破壊のコストが最小になるように、このボードをp*qの正方形に分割する必要があります。このボードでは、各エッジの切削コストが示されます。一言で言えば、コストが最小になるように、このような一連の切断を選択する必要があります。 例 上記のボードに関して、正方形にカットする最適な方法は-です。 上記の場合の合計最小コストは65です。これは、次の手順を実行して計算され、評価されます。 Initial Value : Total_cost = 0 Total_cost = Total_cost + edge_cost * total_pi

  7. チェス盤では、C++で2つの部分に分割されないように最小限のカットを行うことができます。

    コンセプト A x Bチェス盤が与えられた場合、タスクは、チェス盤が2つの部分に分割されないように、チェス盤で作成できるカットの最大数を計算することです。 例 例を以下に示します- 入力 A = 2, B = 4 出力 Number of maximum cuts = 3 入力 A = 2, B = 2 出力 Number of maximum cuts = 1 メソッド A =2、B =2の場合、1つのカットしか作成できません(赤のマーク)。さらに1つのカットを作成すると、チェス盤は2つのピースに分割されます A =2、B =4の場合、3つのカット(赤のマ

  8. C++でオイラー回路を作成するために追加する必要のある最小エッジ

    コンセプト bノードとエッジの特定の無向グラフに関して、仕事は、特定のグラフでオイラー回路を構築するために必要な最小エッジを決定することです。 入力 b = 3, a = 2 Edges[] = {{1, 2}, {2, 3}} 出力 1 1対3を接続することで、オイラー回路を構築できます。 メソッド グラフに存在するオイラー回路に関しては、ノードに入った後にノードを出るために適用できるエッジが存在するため、すべてのノードが偶数次である必要があります。 現在、2つのケースが考えられます- グラフ内の1つの連結成分の存在 この場合、グラフ内のすべてのノードに等次数が装備さ

  9. C++でGCDを大きくするためのアレイからの最小限の削除

    コンセプト 与えられたN個の数に関して、目標は、残りの数のGCDがN個の数の初期GCDよりも大きくなるように数の最小除去を決定することです。 GCDを増やすことができない場合は、「NO」と印刷してください。 入力 b[] = {1, 2, 4} 出力 1 最初の要素を削除すると、新しいGCDは2になります。これは、最初のGCD、つまり1よりも大きくなります。 入力 b[] = {6, 9, 15, 30} 出力 3 6と9を削除して3より大きい15のgcdを取得した後、最初のgcdは3です。9と15を削除して6のgcdを取得することもできます。 メソッド 上記の問題を解

  10. C++で最大nCr値を持つ指定された配列からペアを検索します

    コンセプト n個の正の整数の配列arr[]が与えられた場合、タスクは、arr [i]Carr[j]が最大で可能になるように配列から要素arr[i]とarr[j]を決定することです。複数の有効なペアについては、いずれか1つを印刷してください。 入力 arr[] = {4, 1, 2} 出力 4 2 4C1 = 4 4C2 = 4 2C1 = 4 (4, 2) is the only pairs with maximum nCr. メソッド n C r 単調増加関数、つまり n + 1として扱われます。 C r n C r 。この事実を適用して、私たちの答えに近づく

  11. C++でRMQを使用してバイナリツリーでLCAを検索する

    コンセプト この記事では、ツリー内の2つのノードのLCAをRMQ問題に還元することにより、そのLCAを見つける問題を解決する方法について説明します。 例 最低共通祖先(LCA) ルートツリーTの2つのノードaとbのうち、aとbの両方を子孫として持つ、ルートから最も遠いノードとして定義されます。 たとえば、下の図によると、ノードDとノードIのLCAはノードBです。 LCAの問題を解決するために、非常に多くのアプローチを適用できます。これらのアプローチは、時間と空間の複雑さの点で異なります。 範囲最小クエリ(RMQ) 配列に適用され、指定された2つのインデックス間の最小値を持つ

  12. C++の特定のバイナリツリーで最大の完全なサブツリーを検索します

    コンセプト 与えられた二分木に関して、タスクは与えられた二分木の最大の完全なサブツリーのサイズを決定することです。 完全な二分木–すべてのレベルが完全に満たされ、最後のレベルが可能な限り残っている場合、二分木は完全な二分木として扱われます。すべての完全な二分木は完全な二分木ですが、逆になりません。ツリーが完全でない場合、それは完全な二分木でもないことがわかっています。 入力       2      / \     3   4    / \  / \   5

  13. C++の数値から最小桁を削除して形成された最大の立方体を見つける

    コンセプト 与えられた数Nに関して、私たちの仕事は、数から最小の桁(おそらく0)を削除することによって形成できる最大の完全な立方体を決定することです。そのため、指定された番号から任意の数字を削除して、ターゲットに到達することができます。 ある整数Bに対してA=B ^ 3の場合、Aは完全な立方体と呼ばれます。 数が完全な立方体にできない場合は-1を印刷することがわかっています。 例 N =1025とします。上記の数値から0を削除すると、残りの数値として125が得られます。これは、5(5 * 5 * 5 =125)の立方根です。 N =806とします。0と6を削除すると、残りの数は2

  14. 式のバランスの取れた括弧を確認します-O(1)スペース-C ++でのO(N ^ 2)時間計算量

    コンセプト 文字‘(‘、‘)’、‘{‘、‘}’、‘[‘、‘]’を含む文字列strが与えられた場合、タスクは角かっこがバランスされているかどうかを確認することです。 − の場合、角かっこはバランスが取れていると示されます 開いたブラケットを閉じるには、同じタイプのブラケットで閉じる必要があります。 ここでも、正しい順序に従って開き角かっこを閉じます。 入力 − str =“(()){}” 出力 −はい 入力 − str =“))(([] [” 出力 −いいえ メソッド 2つの変数aとbを割り当てて、比較する2つの角かっこを追跡します。 カウントは、開始

  15. 特定の二分木がC++の赤黒木と同じように高さのバランスが取れているかどうかを確認します

    コンセプト 赤黒木に関しては、ノードの最大の高さは最大で最小の高さの2倍です。特定の二分探索木について、次のプロパティを確認する必要があります。 すべてのノードに関して、リーフからノードへの最長パスの長さは、ノードからリーフへの最短パス上のノードの2倍以下です。 例 13    41 \    / \ 15  11 101 \   /    \ 17 61 151 上の木は赤黒木にすることはできません上の木は任意の色の割り当てで赤黒木にすることができます 13の最大高さは1です 13の最小の高さは3で

  16. 特定のバイナリツリーがC++でヒープであるかどうかを確認します

    コンセプト 与えられた二分木に関して、それがヒーププロパティを持っているかどうかを確認する必要があります。二分木はヒープであるために次の2つの条件を満たす必要があります– 二分木は完全なツリーである必要があります(つまり、最後を除くすべてのレベルがいっぱいである必要があります)。 二分木のすべてのノードの値は、その子ノード以上である必要があります(最大ヒープを考慮)。 例 次の例に関して、このツリーにはヒーププロパティが含まれています– 次の例にはヒーププロパティがありません– メソッド 完全性isComplete(この関数はバイナリツリーが完全で

  17. C++プログラムでDFSを使用して特定のグラフが2部グラフであるかどうかを確認します

    連結グラフがあるとします。グラフが2部グラフであるかどうかを確認する必要があります。セット内のノードが同じ色で着色されるように、2つの色を適用してグラフ彩色が可能な場合。 したがって、入力が次のような場合 その場合、出力はTrueになります これを解決するには、次の手順に従います- 関数insert_edge()を定義します。これは、エッジ配列adj、u、v、を取ります。 adj [u]の最後にvを挿入します 形容詞の最後にuを挿入[v] メインの方法から、次の手順を実行します。 adj [v]の各uについて、do visited [u]がfalseと同じ場合、- vi

  18. 指定された文字列がC++で有効な数値であるかどうかを確認します

    コンセプト 指定された文字列が数値であるかどうかを検証する必要があります。 入力 − str =12.5 出力 − true 入力 − str =def 出力 − false 入力 − str =2e5 出力 − true 入力 − 10e4.4 出力 − false メソッド コードで次のケースを処理する必要があります。 先頭と末尾の空白は無視する必要があります。 最初の「+」、「-」、「。」は無視する必要があります。 文字列内の文字が{+、-、。、e、[0-9]}に属していることを確認する必要があります 「e」の後に「。」がないこ

  19. C++の配列のサイズkのすべてのセグメントにキーが存在するかどうかを確認します

    コンセプト サイズが配列N、互いにキーX、セグメントサイズがKの特定の配列arr1 []に関して、タスクは、キーXがarr1[]のサイズKのすべてのセグメントに存在することを確認することです。 入力 arr1[] = { 4, 6, 3, 5, 10, 4, 2, 8, 4, 12, 13, 4} X = 4 K = 3 出力 Yes 配列には、サイズKの重複しない4つのセグメント、{4、6、3}、{5、10、4}、{2、8、4}、および{12、13、4}が存在します。 4はすべてのセグメントに存在します。 入力 arr1[] = { 22, 24, 57, 66, 35, 5

  20. C ++で変更されたチェス盤にN泊しているときに、王が有効な動きを移動できるかどうかを確認します

    コンセプト チェスと同じルールで与えられた無限のチェス盤と、無限のチェス盤上の与えられたN人の騎士の座標(-10 ^ 9 <=x、y <=10 ^ 9)と王の座標に関して、タスクは次のことを確認することです。王はチェックメイトかどうか。 入力 a1[] = { { 2, 1 }, { 1, 3 }, { 3, 6 },{ 5, 5 }, { 6, 1 }, { 7, 3 }} king -> {4, 3} 出力 Yes 王はチェックメイトであるため、行動を起こすことができません。 入力 a1 [] = {{1, 1}} king -> {3, 4} 出力 No

Total 5992 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:194/300  20-コンピューター/Page Goto:1 188 189 190 191 192 193 194 195 196 197 198 199 200