-
合計が与えられた数nに等しい平方の最小数
任意の数は、いくつかの完全な平方数の合計で表すことができます。この問題では、与えられた値を表すために必要な完全な平方項の最小数を見つける必要があります。 値を94とすると、95 =9 2 + 3 2 + 2 2 + 1 2 。したがって、答えは4になります アイデアは1から始めることであり、完全な平方数を得るためにさらに進んでいきます。値が1〜3の場合、1のみで形成する必要があります。 入力と出力 Input: An integer number. Say 63. Output: Number of squared terms. Here the answer is 4.
-
モバイルテンキーの問題
この問題では、数値のモバイルキーパッドが提供されます。現在のボタンの上、下、右、左のボタンしか押すことができません。斜めのキーは使用できません。また、キーパッドの*ボタンと#ボタンを押すこともできません。 数字が与えられたら、キーパッドを使用して、与えられたルールを維持しながら、与えられた数字の可能な数を見つける必要があります。 入力と出力 Input: Digit count. Say 3 digit numbers. Output: Number of possible 3 digit numbers, that can be formed with the given condi
-
数値を3つの部分に分割して、最大合計を求めます
番号が付けられています。私たちの仕事は、数をn / 2、n / 3、およびn / 4で3回割って、数を3つの部分に分割することによって作成できる最大の合計を見つけることです。 たとえば、50を{25、16、12}に分割し、各セット{25、16、12}を再び3つの分割に分割することができます。最大3回の除算を完了した後、合計を計算して最大値を見つけます。 このプログラムは再帰的に解決できますが、再帰的アプローチでは、同じ結果を複数回見つける必要があるため、動的計画法アプローチを使用して以前に計算されたデータをテーブルに格納すると、時間。 入力と出力 Input: Let the given
-
最適な二分探索木
整数のセットはソートされた順序で与えられ、別の配列は頻度カウントに頻繁に与えられます。私たちのタスクは、これらのデータを使用してバイナリ検索ツリーを作成し、すべての検索の最小コストを見つけることです。 サブ問題の解を解いて保存するために、補助配列cost [n、n]が作成されます。コストマトリックスは、ボトムアップ方式で問題を解決するためのデータを保持します。 入力と出力 Input: The key values as node and the frequency. Keys = {10, 12, 20} Frequency = {34, 8, 50} Output: The minimu
-
ワイルドカードパターンマッチング
この問題では、1つのメイン文字列と別のワイルドカードパターンが指定されています。このアルゴリズムでは、ワイルドカードパターンが本文と一致しているかどうかを確認します。 ワイルドカードパターンには、文字、「*」または「?」の記号を含めることができます。 「?」は単一の文字に一致するために使用され、「*」は空のスペースを含む文字のシーケンスに一致するために使用されます。 文字が「*」の場合:スター文字を無視して、パターン内の次の文字を確認するために移動できます。 次の文字が「?」の場合、テキスト内の現在の文字のみを無視して、パターンとテキスト内の次の文字を確認できます。 パターン文字が「*
-
友達ペアリングの問題
グループには、n人の友達がいます。一人一人が独身のままでいることも、他の友達とペアになることもできます。友達が独身のままでいることも、ペアになることもできる方法の総数を見つけましょう。 1つのペアに2人の友人のpとqがある場合、(p、q)または(q、p)は同じです。 n人の友人のグループの場合、f(n)を、ペアにする方法または単一のままにする方法の数とします。次に、n番目の人が独身のままであるか、ペアになっています。 n人目が独身の場合、(n-1)人の友達を繰り返します。 n番目の人が残りの(n-1)人のいずれかとペアになっている場合、(n-1)* f(n-2)を繰り返します。 入力と出
-
回文分割
このアルゴリズムでは、入力は文字列であり、パーティションのすべてのサブストリングが回文である場合、その文字列のパーティション化は回文パーティション化です。 このアルゴリズムでは、指定された文字列をパリンドロームで分割するために必要な最小限のカットを見つける必要があります。 入力と出力 Input: A string. Say “ababbbabbababa” Output: Minimum cut to partition as palindrome. Here 3 cuts are needed. The palindromes are: a | babbbab |
-
パーティションの問題
この問題では、各サブセットの合計が等しくなるように、特定のセットを分割できます。 最初に、与えられたセットの合計を見つける必要があります。偶数の場合は、2つのセットに分割する可能性があります。それ以外の場合は分割できません。 合計の値が偶数の場合は、partTableという名前のテーブルを作成し、次の条件を使用して問題を解決します。 partTable [i、j]は、array[0]からarray[j-1]へのサブセットの合計がiに等しい場合は真、それ以外の場合は偽です。 入力と出力 Input: A set of integers. {3, 1, 1, 2, 2, 1} Output:
-
最長のパリンドロームサブシーケンス
最長のパリンドロームサブシーケンスは、特定のシーケンスのサブシーケンスであり、サブシーケンスはパリンドロームです。 この問題では、文字の1つのシーケンスが与えられ、パリンドロームのサブシーケンスの最長の長さを見つける必要があります。 この問題を解決するために、再帰式を使用できます。 L(0、n-1)を使用して、最長のパリンドロームサブシーケンスの長さを格納する場合、 L(0、n-1):=L(1、n-2)+ 2(0番目と(n-1)番目の文字が同じ場合) 入力と出力 Input: A string with different letters or symbols. Say the inp
-
行列の連鎖乗積
行列のチェーンが指定されている場合、乗算する行列の正しいシーケンスの最小数を見つける必要があります。 行列の乗算は結合法則であることがわかっているため、4つの行列ABCDを使用すると、これらのシーケンスでA(BCD)、(AB)(CD)、(ABC)D、A(BC)Dを乗算できます。これらのシーケンスと同様に、私たちのタスクは、乗算するのに効率的な順序を見つけることです。 指定された入力には、arr [] ={1、2、3、4}を含む配列sayarrがあります。これは、行列が(1 x 2)、(2 x 3)、(3 x 4)の順序であることを意味します。 入力と出力 Input: The orders
-
ペアの最大長チェーン
ペアのチェーンがあります。各ペアには2つの整数があり、最初の整数は常に小さく、2番目の整数は大きいので、同じルールをチェーンの構築にも適用できます。ペア(x、y)は、q
-
すべて1の最大サイズの正方形の部分行列
バイナリ行列が指定された場合、私たちのタスクは、すべての要素が1である正方行列を見つけることです。 この問題のために、与えられた行列と同じ次数の補助サイズ行列を作成します。このサイズ行列は、各エントリでSize [i、j]を表すのに役立ちます。これは、すべて1の正方行列のサイズです。そのサイズ行列から、最大の正方行列のサイズを取得するための最大数を取得します。 入力と出力 Input: The binary matrix. 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 0 Output: The largest submatrix with
-
最大2回の株式の売買による最大利益
取引では、1人の買い手が朝と夕方にそれぞれ株式を売買します。 1日に最大2つのトランザクションが許可される場合。 2番目のトランザクションは、最初のトランザクションが完了した後にのみ開始できます。株価が示されている場合は、購入者が稼ぐことができる最大の利益を見つけます。 入力と出力 Input: A list of stock prices. {2, 30, 15, 10, 8, 25, 80} Output: Here the total profit is 100. As buying at price 2 and selling at price 30. so profit 28. Th
-
最大合計増加部分列
Maximum Sum Increasingサブシーケンスは、指定された整数のリストのサブシーケンスであり、その合計は最大であり、サブシーケンスでは、すべての要素が昇順で並べ替えられます。 L [i]が配列[i]で終わる最大合計増加部分列であるように、最大合計増加部分列を格納する配列があるとします。 入力と出力 Input: Sequence of integers. {3, 2, 6, 4, 5, 1} Output: Increasing subsequence whose sum is maximum. {3, 4, 5}. アルゴリズム maxSumSubSeq(array, n
-
2D行列の最大合計長方形
行列が与えられます。合計が最大になる長方形(場合によっては正方形)の行列を見つける必要があります。 このアルゴリズムの背後にある考え方は、左列と右列を修正し、各行の左列から右列までの要素の合計を見つけて、一時的に保存することです。一番上の行と一番下の行の番号を見つけようとします。一時配列を取得した後、Kadaneのアルゴリズムを適用して、最大合計サブ配列を取得できます。これにより、全体の長方形が形成されます。 入力と出力 Input: The matrix of integers. 1 2 -1 -4 -20 -8 -3 4 2
-
最小コストパス
さまざまなコストのマトリックスが示されています。また、宛先セルが提供されます。開始セル(0、0)から宛先セルに到達するための最小コストパスを見つける必要があります。 マトリックスの各セルは、そのセルを通過するためのコストを表します。 セルからはどこにも移動できません。目的地に到達するために、右または下、または右下の対角セルに移動できます。 入力と出力 Input: The cost matrix. And the destination point. In this case the destination point is (2, 2). 1 2 3 4 8 2 1 5 3 Outp
-
最小コストのポリゴン三角形分割
交差しない対角線が多角形で三角形を形成している場合、それは三角形分割と呼ばれます。私たちの仕事は、三角測量の最小コストを見つけることです。 三角測量のコストは、そのコンポーネントの三角形の重みの合計です。各三角形の重さは、辺を追加することでわかります。つまり、重さは三角形の周囲長です。 入力と出力 Input: The points of a polygon. {(0, 0), (1, 0), (2, 1), (1, 2), (0, 2)} Output: The total cost of the triangulation. Here the cost of the triangulat
-
目的地に到達するための最小初期ポイント
特定のグリッドの左上隅から開始するには、右下隅に到達する必要があります。グリッド内の各セルには数値が含まれ、数値は正または負の場合があります。人がセル(i、j)に到達すると、そのセルの値に応じて、持っているトークンの数が増減する場合があります。旅を完了するために必要な初期トークンの最小数を見つける必要があります。 いくつかのルールがあります- 右または下に移動できます。 合計トークンが(i、j)の値よりも小さい場合、セル(i、j)に移動することはできません。 プラスのポイントを最小限に抑えて目的地に到達する必要があります。 入力と出力 Input: The token for each
-
フロイドウォーシャルアルゴリズム
Floyd-Warshallアルゴリズムを使用して、特定の重み付きグラフからすべてのペアの最短経路問題を見つけます。このアルゴリズムの結果として、グラフ内の任意のノードから他のすべてのノードまでの最小距離を表す行列が生成されます。 最初、出力行列はグラフの指定されたコスト行列と同じです。その後、出力行列はすべての頂点kを中間頂点として更新されます。 このアルゴリズムの時間計算量はO(V ^ 3)です。ここで、Vはグラフ内の頂点の数です。 入力と出力 Input: The cost matrix of the graph. 0 3 6 ∞ ∞ ∞ &
-
フィボナッチ数列を生成する
フィボナッチ数列は次のようになります 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,…… このシーケンスでは、n番目の項は(n-1)番目と(n-2)番目の項の合計です。 生成するには再帰的アプローチを使用できますが、動的計画法では手順が簡単です。すべてのフィボナッチ数をテーブルに格納できます。そのテーブルを使用することで、このシーケンスの次の項を簡単に生成できます。 入力と出力 Input: Take the term number as an input. Say it is 10 Output: Enter number of te