C ++

 Computer >> コンピューター >  >> プログラミング >> C ++
  1. C++の三角形

    三角形があるとします。上から下への最小経路合計を見つける必要があります。各ステップで、下の行の隣接する番号に移動できます。 たとえば、次の三角形が次のような場合 [       [2],      [3,4],     [6,5,7],    [4,1,8,3] ] 上から下への最小経路合計は11(2 + 3 + 5 + 1 =11)です。 手順を見てみましょう- 動的計画法で使用するテーブルを1つ作成します。 n:=三角形のサイズ for i:=n –2から0まで

  2. C++での挿入ソートリスト

    リンクリストがあるとすると、このリストに対して挿入ソートを実行する必要があります。したがって、リストが[9,45,23,71,80,55]のような場合、ソートされたリストは[9,23,45,55,71,80]になります。 これを解決するには、次の手順に従います- ダミー:=ランダムな値を持つ新しいノード node:=指定されたリスト ノードがnullでない場合、 newNode =ノードの次、dummyHead:=ダミーの次、prevDummyHead:=ダミー 真の場合- ノードの値 ノードの次:=ダミーヘッド prevDummyHeadの次:=ノード ループを破る prev

  3. C++の各ノードに次の右ポインタを設定する

    完全な二分木があり、各ノードに次のフィールドがあるとします:(データ、左、右、次)、左は左のサブツリーを指し、右は右のサブツリーを指し、次のポインターは次のノードを指します。右側にノードがない場合、それはnullになります。したがって、最初に次の各ポインタがnullに設定され、リンクを作成する必要があります。ツリーが最初のツリーのようであるとすると、次のノードに変換されます- これを解決するには、次の手順に従います- pre:=root、nextPre:=null、prev:=nullを設定します preがnullではない場合 preがnullではない場合 preの左側

  4. C++の各ノードIIに次の右ポインタを移入する

    各ノードに次のフィールド(データ、左、右、次)があるバイナリツリーがあるとします。左は左のサブツリーを指し、右は右のサブツリーを指し、次のポインタは次のノードを指します。右側にノードがない場合、それはnullになります。したがって、最初に次の各ポインタがnullに設定され、リンクを作成する必要があります。ツリーが最初のツリーのようであるとすると、次のノードに変換されます- これを解決するには、次の手順に従います- pre:=root、nextPre:=null、prev:=nullを設定します preがnullではない場合 preがnullではない場合 preの左側がn

  5. C++で合計が最小のKペアを検索する

    2つのソートされた配列A1とA2、および別の値kがあるとします。 A1の1つの要素とA2の別の要素で構成されるペア(u、v)を定義する必要があります。 [(u1、v1)、(u2、v2)、…、(uk、vk)]のようなkペアを見つける必要があります。したがって、A1 =[1、7、11]およびA2 =[2、4、6]、およびk =3の場合、出力は[(1、2)、(1、4)、(1、6)]になります。 これを解決するには、次の手順に従います- 2つの値aとb、およびインデックスをとる1つのデータ型を定義します。 データ型のキーとデータのリストを値として受け取る優先度キューを1つ作成します。 n:=

  6. C++での数値の上位または下位IIを推測します

    推測ゲームをプレイしているとします。ゲームのルールは次のとおりです- Player1は、1からnまでの数字を選択します。 player2は、player1が選択した番号を推測する必要があります。 player2が間違って推測するたびに、player1は選択された数字が多いか少ないかを判断します。 ただし、あるプレーヤーが特定の数字xを推測し、別のプレーヤーが間違って推測した場合、別のプレーヤーは$xを支払う必要があります。 player2が正解すると、ゲームは終了します。 たとえば、n =10で、player1が8を取っている場合 最初のラウンドで、player2は数字が5である

  7. C++で文字列を再編成します

    文字列Sがあるとします。隣接する2つの文字が同じにならないように、文字を再配置できるかどうかを確認します。それが可能な場合は、可能な結果を​​出力します。それが不可能な場合は、空の文字列を返します。したがって、入力が「AAB」のような場合、出力は「ABA」になります。 これを解決するには、次の手順に従います- pqと呼ばれる整数文字ペアの優先キューを作成し、1つのマップmを定義します n:=文字列のサイズ 文字の頻度をマップmに保存します mの各キーと値のペアp 挿入(pの整数部分、pの文字部分) ans:=空の文字列 pqが空でない間 pqから1つ:=トップペアを設定し、pq

  8. C++で一致するサブシーケンスの数

    文字列Sと単語wordsの辞書があるとすると、Sのサブシーケンスであるwords [i]の数を見つけます。したがって、入力がS =“ abcde”で、辞書が[“ a”、“ bb”、 「acd」、「ace」]の場合、出力は3になります。辞書にはSのサブシーケンスである単語の3つのシーケンスがあるため、「a」、「acd」、「ace」 これを解決するには、次の手順に従います- n:=単語配列のサイズ 1つのマップを作成するm 0から単語のサイズまでの範囲のiの場合 words[i]をマップのm[words[i、0]]の位置に挿入します ans:=0 0からSのサイズまでの範囲のiの場合

  9. C++でのほとんどの利益配分作業

    ジョブの難易度[i]があり、この配列がi番目のジョブの難易度を示し、profit[i]がi番目のジョブの利益であるとします。ここで、何人かの労働者がいると考えてください。 worker [i]はi番目のワーカーの能力です。つまり、このワーカーはほとんどのworker[i]でしか仕事を完了できません。すべてのワーカーは最大で1つのジョブを実行できますが、1つのジョブは複数回完了することができます。私たちが稼ぐことができる最大の利益は何であるかを見つけなければなりませんか? たとえば、入力が難易度=[2,4,6,8,10]、利益=[10,20,30,40,50]、ワーカー=[4,5,6,7]のよ

  10. C++でのオンラインストックスパン

    ある株の毎日の相場を収集し、その日のその株の価格のスパンを返すAPIがあるとします。ここで、今日の株価のスパンは次のように定義されます- 株価が今日の価格以下であった連続最大日数(今日から始まり、逆方向に戻る)。 たとえば、[100、80、60、70、60、75、85]のような7日間の株式シェアレコードが表示された場合、株式スパンは[1、1、1、2、1、4、6]になります。そのAPIの実際のモジュールを作成する必要があります。これは、このモジュールが呼び出されるときに使用されます これを解決するには、次の手順に従います- 2つの配列st、v、counterを定義し、counterを

  11. C++のバスケットにフルーツ

    木の列があるとすると、i番目のツリーはタイプtree[i]のフルーツを生成します。任意のツリーから開始して、これらの手順を繰り返し実行できます- この木から1つの果物をバスケットに追加します。チャンスがない場合は、やめてください。 現在のツリーの右側にある次のツリーに移動します。右側に木がない場合は、停止します。 バスケットは2つあり、各バスケットには任意の量の果物を入れることができますが、各バスケットにはそれぞれ1種類の果物のみを入れる必要があります。この手順で収集できる果物の総量を見つける必要がありますか?したがって、ツリーが[0、1、2、2]のような場合、出力は3になります。[1,

  12. C++での最小立ち下がりパスの合計

    整数Aの正方配列があるとすると、Aを通る立ち下がりパスの最小合計が必要です。立ち下がりパスは、基本的に、最初の行の任意の要素から始まり、各行から1つの要素を選択するパスです。また、次の行の要素は、前の行の列と最大で1つ異なる列に含まれている必要があります。したがって、行列が-のような場合 1 2 3 4 5 6 7 8 9 その場合、出力は12になります。いくつかの異なる立ち下がりパスがあります。これらは、[1,4,7]、[1,4,8]、[1,5,7]、[1,5,8]、[1,5,9]、[2,4,7]、 [2,4,8]、[2,5,7]、[

  13. C++でKで割り切れるサブアレイの合計

    整数の配列Aがあるとします。合計がkで割り切れる、連続する空でないサブアレイの数を見つける必要があります。 A =[4,5,0、-2、-3,1]およびk =5の場合、出力は7になります。7つのサブ配列があります。 [[4,5,0、-2、-3,1]、[5]、[5,0]、[5,0、-2、-3]、[0]、[0、-2、- 3]、[-2、-3]] これを解決するには、次の手順に従います- 1つのマップmを作成し、m[0]を1に設定します temp:=0、ans:=0、およびn:=配列のサイズa 0からn–1の範囲のiの場合 temp:=temp + a [i] x:=(temp mod

  14. C++でのMaxConsecutiveOnes III

    0と1の配列Aがあるとすると、0から1までの最大K個の値を更新できます。1のみを含む最長の(連続した)サブ配列の長さを見つける必要があります。したがって、A=[1,1,1,0,0,0,1,1,1,1,0]およびk=2の場合、出力は6になります。したがって、2 0を反転すると、配列は次のようになります。 [1,1,1,0,0,1,1,1,1,1,1]のように、1の最長シーケンスの長さは6です。 これを解決するには、次の手順に従います- ans:=0、j:=0、n:=配列のサイズを設定 0からn–1の範囲のiの場合 A [i]が0の場合、kを1減らします while j<=iおよびk<0

  15. C++の算術スライス

    少なくとも3つの要素で構成され、2つの連続する要素の差が同じである場合、数のシーケンスが算術と呼ばれるとします。したがって、たとえば、これらは等差数列です:[1、3、5、7、9]、[7、7、7、7]、[3、-1、-5、-9]、しかし次のシーケンスはそうではありません算術。 [1、1、2、5、7] ここで、N個の数値で構成されるゼロインデックス配列Aが与えられます。その与えられた配列のスライスは、0 <=P

  16. C++のストーンゲームII

    アリスとボブの2人がいて、石の山でゲームを続けているとします。多数の杭が一列に配置されており、各杭には正の整数の石が配列された杭になっています[i]。ゲームの目的は、ほとんどの石で終了することです。アリスとボブが交代で、アリスが最初に始まります。最初は、M =1です。各プレイヤーのターンで、そのプレイヤーは最初のX個の残りの山(ここでは1 <=X <=2M)のすべての石を取ることができます。次に、M =max(M、X)に設定します。石がなくなるとゲームは終了します。したがって、piles =[2,7,9,4,4]の場合、出力は10になります。これは、アリスが最初に1つのパイルを取得し、次にボブ

  17. C++の文字列IIで隣接するすべての重複を削除します

    文字列sが与えられたとすると、k重複削除は、文字列sからk個の隣接する等しい文字を選択し、それらを削除して、削除されたサブ文字列の左側と右側を連結することで構成されます。残りを変更できなくなるまで、指定された文字列に対してk回の重複削除を繰り返し行います。このような重複した削除がすべて行われた後、最終的な文字列を見つける必要があります。したがって、入力がs =“ deeedbbcccbdaa”のようで、k =3の場合、出力は“ aa”になります。最初に“ eee”と“ ccc”を削除すると、“ ddbbbaa”が取得され、次に“ bbb”が削除されます。 、文字列は「dddaa」になり、次に「

  18. C++でのステッピング番号

    低と高の2つの整数があるとすると、[低、高]の範囲内のすべてのステッピング番号のソートされたリストを見つけて表示する必要があります。ステッピング番号は整数であり、隣接するすべての数字の絶対差が正確に1であることを意味します。たとえば、321はステッピング番号ですが、421はそうではありません。したがって、入力がlow:=0およびhigh:=21のようである場合、結果は[0,1,2,3,4,5,6,7,8,9,10,12,21]になります。 これを解決するには、次の手順に従います- 1つのアレイ一時を作成 solve()という1つのメソッドを作成します。これには、high、seed、lenが

  19. C++で最大のゴールドを持つパス

    サイズm*nの金鉱山グリッドで、この鉱山の各セルに、そのセル内の金の量を表す整数があるとします。0は空であることを意味します。条件の下で収集できる金の最大量を見つける必要があります- セルを指すたびに、そのセル内のすべての金を収集します。 私たちの位置から、左、右、上、または下に一歩歩くことができます。 同じセルに複数回アクセスすることはできません。 ゴールドが0のセルには絶対にアクセスしないでください。 7 これを解決するには、次の手順に従います- dfsと呼ばれる1つのメソッドを作成します。これは、grid、n、m、i、およびjを使用します。以下のように動作します =mまたは

  20. C++でのダイスロールシミュレーション

    ダイシミュレーターがロールごとに1から6までの乱数を生成するとします。ジェネレーターに制約を導入して、数値iをrollMax [i](1インデックス)を超えて連続してロールできないようにします。整数rollMaxと整数nの配列があるとすると、正確なn回のロールで取得できる個別のシーケンスの数を返す必要があります。少なくとも1つの要素が互いに異なる場合、2つのシーケンスは異なると見なされます。したがって、nが2の場合、rollMax =[1,1,2,2,2,3]の場合、出力は34になります。したがって、制約がない場合、ダイには2つのロールがあります。 6 * 6 =36の可能な組み合わせ。この場

Total 5992 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:164/300  20-コンピューター/Page Goto:1 158 159 160 161 162 163 164 165 166 167 168 169 170