-
ツリー内のサブツリーのDFSに対するC++クエリ
この問題では、バイナリツリーが与えられ、特定のノードからdfsを実行する必要があります。このノードでは、指定されたノードをルートとして想定し、そこからdfsを実行します。 上記のツリーで、ノードFからDFSを実行する必要があると仮定します このチュートリアルでは、いくつかの非正統的な方法を適用して、時間計算量を大幅に削減し、より高い制約に対してもこのコードを実行できるようにします。 アプローチ −このアプローチでは、単純な方法ではありません。つまり、より高い制約では機能しないため、すべてのノードにdfsを適用するだけなので、TLEの取得を回避するためにいくつかの非正統的な方法を使用
-
与えられた範囲での偶数または奇数の確率に関するC++クエリ
数値のパリティの確率を見つけるために、つまり、それが偶数か奇数か、そして与えられた範囲について。たとえば、クエリごとに、確率をp/qで表すpとqを出力する必要があります。 Input : N = 5, arr[] = { 6, 5, 2, 1, 7 } query 1: 0 2 2 query 2: 1 2 5 query 3: 0 1 4 Output : 0 3 4 1 2 この問題では、そのインデックスまでに存在する奇数と偶数の数を含む2つの配列を維持します。これにより問題が単純化され、その数とその範囲に存在する要素の数を出力する必要があります。 解決策を見つけるためのアプローチ
-
C++を使用して文字列の部分文字列の数を見つける
この記事では、特定の文字列に形成できるサブ文字列(空ではない)の数を見つけるためのアプローチについて学習します。 Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and &
-
C ++を使用して、他の文字列に存在する1つの文字列の部分文字列の数を検索します
この記事では、2つの文字列が与えられ、2番目の文字列で1番目の文字列のサブ文字列がいくつ見つかるかを調べる必要があります(正確なサブ文字列は複数回発生する可能性があります)。例 Input : string1 = “fogl” string2 = “google” Output : 6 Explanation : substrings of string1 present in string2 are [ “o”, “g”, “l”, “
-
Nの基数16表現で後続ゼロの数を見つけます! C++を使用する
この記事では、たとえば階乗の基数16の表現で特定の数Nの後続ゼロを見つける問題を理解します Input : N = 7 Output : 1 Explanation : fact(7) = 5040 in base10 and 13B0 in base16 having 1 trailing zero. Input : N = 11 Output : 2 Explanation : fact(11) = 39916800 in base10 and 2611500 in base16 having 2 trailing zeroes. まず、10進数を1つの基数から別の基数に変換するプロセ
-
Nの基数B表現で後続ゼロの数を見つけます! C++を使用する
この記事では、階乗のベースB表現で特定の数Nの後続ゼロを見つける問題を理解します。例 Input : N = 7 Base = 2 Output : 4 Explanation : fact(7) = 5040 in base10 and 1001110110000 in base16 having 4 trailing zero. Input : N = 11 Base = 5 Output : 2 Explanation : fact(11) = 39916800 in base10 and 40204314200 in base16 having 2 trailing zeroes.
-
C++を使用してN回移動した後の三角形の数を見つける
記事では、最初に、色付きの三角形を描画する必要があります。色のない三角形を取り、三角形を4つの小さな等辺に分割する必要があります。同じ面積の三角形をn番目のステップまで続けて、図に存在する正三角形の数を見つけます。 解決策を見つけるためのアプローチ このソリューションには2つのアプローチがあり、それらは- ブルートフォースアプローチ 三角形の数は、ステップごとにいくらか増加し続ける(3 * previous_number + 2ずつ増加する)ことがわかります。したがって、nまでループを実行して、三角形の数を計算できます。 例 #include <iostream> using
-
C ++を使用して、3本の線上の点のセットから形成された三角形の数を見つけます
現在、3行にいくつかのポイントがあります。たとえば、これらの点が形成できる三角形の数を見つける必要があります Input: m = 3, n = 4, k = 5 Output: 205 Input: m = 2, n = 2, k = 1 Output: 10 この質問にいくつかの組み合わせ論を適用し、この問題を解決するためのいくつかの公式を作成します。 解決策を見つけるためのアプローチ このアプローチでは、現在の状況に組み合わせ論を適用することによって式を考案し、この式によって結果が得られます。 上記のアプローチのC++コード これが、与えられた問題を解決するための入力として使用で
-
C++を使用して配列内の一意のペアの数を見つける
C ++の配列構文でいくつかの一意のペアを作成するには、適切な知識が必要です。一意のペアの数を見つける際に、特定の配列内のすべての一意のペアをカウントします。つまり、各ペアが一意である必要がある場所に、すべての可能なペアを形成できます。例- Input : array[ ] = { 5, 5, 9 } Output : 4 Explanation : The number of all unique pairs are (5, 5), (5, 9), (9, 5) and (9, 9). Input : array[ ] = { 5, 4, 3, 2, 2 } Output : 16 解決策
-
C ++を使用して、バイナリ文字列の1から始まる一意の順列の数を見つけます
与えられた問題では、0と1で構成される文字列が与えられます。文字列が1で始まるような順列の総数を見つける必要があります。答えは膨大な数になる可能性があるため、1000000007のmodとして出力します。 Input : str ="10101001001" Output : 210 Input : str ="101110011" Output : 56 いくつかの組み合わせ論を適用し、この問題を解決するためにいくつかの式を構築することによって、与えられた問題を解決します。 解決策を見つけるためのアプローチ このアプローチでは、0と1の数を計算し
-
範囲の最大の奇数除数のXORに関するC++クエリ
N個の整数の配列と範囲のQ個のクエリが与えられます。クエリごとに、範囲内の各数値の最大の奇数除数のXORを返す必要があります。 最大の奇数除数は、数Nを除算できる最大の奇数です。たとえば、6の最大の奇数除数は3です。 Input: nums[ ] = { 3, 6, 7, 10 }, query[ ] = { { 0, 2 }, { 1, 3 } } Output: query1: 7 query2: 1 Explanation: greatest odd divisors of nums array are { 3, 3, 7, 5 }. For query 1 we need to f
-
すべてのサブアレイのXORのXORに関するC++クエリ
指定された範囲に存在するすべてのサブアレイのXORを計算し、それを出力します。例 Input : arr[] = { 4, 1, 2, 3, 5 }, Q = 3 Queries q1 = { 1, 2 } q2 = { 2, 4 } q3 = { 1, 4 } Output : 0 2 0 Explanation : As the given problem states that we need to find XOR of all the subarrays present in the given range so as for query 2 the subarrays are
-
与えられたインデックスの左側にある1と0の数に答えるためのC++クエリ
与えられた配列へのクエリに答えるための問題について話し合います。たとえば、クエリインデックスごとに、インデックスの左側にある1と0の数を見つける必要があります。 Input: arr[ ] = { 0, 1, 1, 1, 0, 0, 0, 1, 0, 0}, queries[ ] = { 2, 4, 1, 0, 5 } Output: query 1: zeros = 1,ones = 1 query 2: zeros = 1,ones = 3 query 3: zeros = 1,ones = 0 query 4: zeros = 0,ones = 0 query 5: zeros = 2,
-
C++範囲合計クエリと平方根による更新
配列といくつかのクエリが与えられます。また、クエリには2つのタイプがあります。つまり、update [L、R]は、要素を平方根でLからRに更新することを意味し、query [L、R]は、LからRまでの要素の合計を計算することを意味します。たとえば、1ベースのインデックス付き配列を想定しています Input: nums[ ] = { 0, 9, 4, 1, 5, 2, 3 }, Query[ ] = { {1, 1, 3}, {2, 1, 2}, {1, 2, 5}, { 1, 4, 5}} Output: 14 10 7 1st element of 1st query is 1 means
-
スパーステーブルを使用したC++範囲合計クエリ
Sparsh Tableはデータ構造であり、範囲クエリの結果を提供するために使用されます。これは、O(logN)の複雑さでほとんどの範囲クエリの結果を提供します。最大範囲クエリの場合、O(1)で結果を計算することもできます。 このチュートリアルでは、配列が指定されているスパーステーブルを使用した範囲合計クエリの問題について説明します。たとえば、範囲LとRのすべての要素の合計を見つける必要があります。 Input: arr[ ] = { 2, 4, 1, 5, 6, 3 } query(1, 3), query(0,2), query(1, 5). Output: 10 7 19 Inpu
-
複数のステップまたはジャンプが許可された迷路のC++ラット
n*nグリッド迷路が与えられます。私たちのネズミはグリッドの左上隅にいます。これで、ラットは下または前にのみ移動できます。このバリエーションでは、ブロックの値がゼロ以外の場合に限り、ラットは複数のジャンプを行うことができます。ラットが現在のセルから取ることができる最大のジャンプは、セルに存在する数です。ここで、ラットがグリッドの右下隅に到達できるかどうかを確認する必要があります。たとえば、- Input : { { {1, 1, 1, 1}, {2, 0, 0, 2}, {3, 1, 0, 0}, {0, 0, 0, 1} }, Output : { {1, 1, 1, 1}, {0, 0,
-
与えられた合計の比率を持つA.P.のM番目とN番目の項のC++比率
A.P.のm項とn項の合計の比率が与えられる問題について話し合います。m番目とn番目の項の比率を見つける必要があります。 Input: m = 8, n = 4 Output: 2.142 Input: m = 3, n = 2 Output: 1.666 Input: m = 7, n = 3 Output: 2.6 解決策を見つけるためのアプローチ m thの比率を見つけるには およびnth コードを使用する用語では、式を単純化する必要があります。 S m 最初のm項とSnの合計になります A.P.の最初のn項の合計になります。 a-最初の用語 d-共通の違い 与えられ
-
C++文字列をソートされた順序で並べ替えてから整数の合計を続ける
アルファベットの文字列を並べ替えた順序で並べ替えて、文字列に存在するすべての整数を追加する問題について話し合います。たとえば、 Input : str = “adv4fc3” Output : “ acdfv7” Explanation: all the letters have been sorted to “acdfv” followed by the sum of integers 4 and 3. Input: str = “ h2d7e3f ” Output: “ defh1
-
C ++反復中に、HashMapからキーを使用してエントリを削除します
このチュートリアルでは、キーをトラバースしながら、キーを使用してHashMapからエントリを削除する方法について説明します。たとえば、 Input: HashMap: { 1: “Tutorials”, 2: “Tutorials”, 3: “Point” }, key=1
-
C ++反復中に、HashMapから値を使用してエントリを削除します
たとえば、値を繰り返し処理しながら、値を使用してHashMapからエントリを削除する方法について説明します。 Input: HashMap: { 1: “ Mango ”, 2: “ Orange ”, 3: “ Banana ”, 4: “Apple ” }, value=”Banana” Output: HashMap: { 1: “ Mango ”, 2: “ Orange ”, 4: “Apple &rdq