C ++

 Computer >> コンピューター >  >> プログラミング >> C ++
  1. C++で指定された合計以下の合計を持つ最大合計サブ配列

    この問題では、配列と合計が与えられます。私たちのタスクは、c++で指定された合計以下の合計を持つ最大合計サブ配列を見つけるプログラムを作成することです。 合計が指定された合計以下である、n以下の任意の長さのサブ配列を見つける必要があります。 問題を理解するために例を見てみましょう 入力 −配列={3、5、1、8、2、9}、合計=25 出力 − 25 説明 −合計が25以下のサブ配列は、{5、1、8、2、9}です。 最大合計サブ配列を見つける簡単な方法の1つは、配列を反復処理してすべてのサブ配列の合計を見つけてから、最も近いまたは等しい合計を見つけることです。ただし、この方法では

  2. C++で最大1つの要素を削除する最大合計サブ配列

    この問題では、配列が与えられます。私たちのタスクは、c++で最大1つの要素を削除する最大合計サブ配列を見つけるプログラムを作成することです。 基本的に、削除されたときに配列に残っている要素の最大合計を提供する1つの要素を見つける必要があります。 問題を理解するために例を見てみましょう 入力 −配列={5、1、9、2、-1、7} 出力 − 24 説明 −配列から-1を削除し、合計がすべての可能な結果の最大値になりました。 この問題の解決策の1つは、配列の最小要素を見つけてから、配列の残りのすべての要素の合計を見つけることです。 ただし、ここでは、要素の削除条件は適用されません。

  3. C++の順列II

    個別の整数のコレクションがあるとします。考えられるすべての順列を見つける必要があります。ここで、配列に重複する要素が格納されている場合は、類似している状態を無視します。したがって、配列が[1,1,3]のような場合、結果は[[1,1,3]、[1,3,1]、[3,1,1]]になります。 これを解決するには、次の手順に従います- 再帰的アプローチを使用します。これにより、リスト、インデックスが作成されます。インデックスは最初は0です index =リストのサイズの場合、リストをres配列に挿入し、戻ります 指定されたリストの長さまでの範囲インデックスのiの場合– 1 list [i] =l

  4. C++のスパイラルマトリックス

    行列があり、行列要素をらせん状に印刷する必要があるとします。最初に最初の行から始めて、コンテンツ全体を印刷し、次に最後の列に続いて印刷し、次に最後の行というように、要素をらせん状に印刷します。したがって、行列が-のような場合 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 この場合、出力は[1 2 3 4 5 6 12 18 17 16 15 14 13 7 8 9 10 11 15 16]のようになります。 これを解決するには、次の手順に従います- cu

  5. C++のパーティションリスト

    リンクリストと値xがあるとします。パーティションを作成する必要があります。 x未満のすべてのノードがx以上のノードの前に来るように分割します。これら2つのパーティションのそれぞれのノードの元の相対的な順序を保持する必要があります。したがって、リストが[1,4,3,2,5,2]のようで、x =3の場合、出力は[1,2,2,4,3,5]になります。 これを解決するには、次の手順に従います- ダミーノードd1とd2を作成し、それらを-1で初期化し、2つのポインターdp1とdp2を作成します。これらは、それぞれd1とd2を指しています。 aがnullではない場合

  6. C++のグレイコード

    グレイコードは、2つの連続する値が1ビットだけ異なる2進数システムであることがわかっています。コード内のビットの総数を表す非負の整数nがあるとします。グレイコードのシーケンスを印刷する必要があります。グレイコードシーケンスは0で始まる必要があります。したがって、入力が2の場合、結果は[0,1,3,2]になります。これは、0のグレイが00、1のグレイが01、2のグレイが11、3の灰色は10です。 これを解決するには、次の手順に従います- 1つのアレイを作成します 各数値のグレイコードを見つけて、それらをans配列に追加します。 灰色に変換するには、数値を取得し、数値を1ビット右にシフトした後に

  7. C++での二分木レベルの順序トラバーサル

    二分木があるとします。レベル順トラバーサルスキームを使用して、このツリーをトラバースする必要があります。したがって、ツリーが次のような場合 トラバーサルシーケンスは次のようになります-[10、5、16、8、15、20、23] これを解決するには、次の手順に従います- ノードを格納するためのキューキューを定義する ルートをキューに挿入します。 queが空でない間は、 item:=キューの最前列にあるアイテム アイテムの価値を印刷する アイテムの左側がnullでない場合は、アイテムの左側をqueに挿入します アイテムの権利がnullでない場合は、アイテムの権利をqueに挿入します

  8. C++での逆ポーランド記法の評価

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

  9. C++での回文分割

    1つの入力文字列があるとします。パーティションのすべてのサブ文字列が回文である場合、その文字列の分割は回文分割です。このセクションでは、指定された文字列をパリンドロームで分割するために必要な最小限のカットを見つける必要があります。したがって、文字列が「ababbbabbababa」のような場合は、回文として分割するための最小カット。ここでは3つのカットが必要です。回文は次のとおりです。ババブ| b |アババ これを解決するには、次の手順に従います- n:=strの長さ それぞれ次数nxnのカット行列とパル行列を定義します for i:=0 to n、do pal [i、i]:=tr

  10. C++のガソリンスタンド

    円があり、円上にn個のガソリンスタンドがあるとします。 -のような2つのデータセットがあります すべてのガソリンスタンドにあるガスの量 あるガソリンスタンドから別のガソリンスタンドまでの距離。 車が円を完成できる最初のポイントを計算します。ガスを1単位とすると、車は1単位の距離を移動できます。ガソリンスタンドが4つあり、ガスの量と次のガソリンスタンドからの距離が[(4、6)、(6、5)、(7、3)、(4、5)]のようになっているとします。車が巡回ツアーを行うことができる最初のポイントは、2番目のガソリンスタンドです。出力はstart=1(2番目のガソリンスタンドのインデックス)である必要

  11. C++プログラムでの逆ポーランド記法の評価

    逆ポーランド記法があり、値を評価する必要があるとします。逆ポーランド記法は、後置式とも呼ばれます。ここでは、スタックデータ構造を使用して接尾辞式を解決する必要があります。 後置式から、いくつかのオペランドが見つかった場合、それらをスタックにプッシュします。演算子が見つかると、スタックから2つのアイテムがポップされ、正しい順序で操作が実行されます。その後、結果は将来の使用のためにスタックにもプッシュされます。式全体が完成すると、最終結果もスタックトップに格納されます。したがって、式が「53 + 62 / * 35 * +」の場合、答えは39になります。 手順を見てみましょう- 後置式の文字

  12. C++で有効な括弧文字列

    式があるとします。式にはいくつかの括弧があります。括弧のバランスが取れているかどうかを確認する必要があります。括弧の順序は()、{}、[]です。 2つの文字列があるとします。 「()[(){()}]」これは有効ですが、「{[}]」は無効です。 これを解決するには、次の手順に従います- 式がなくなるまで式をトラバースします 現在の文字が(、{または[のように角かっこを開いている場合は、スタックにプッシュします 現在の文字が)、}、]のように角かっこを閉じている場合は、スタックからポップして ポップされたブラケットが対応する開始ブラケットであるかどうかを確認します 現在のキャラクターの場合は問

  13. C++での組み合わせ合計II

    候補番号のセット(すべての要素が一意)とターゲット番号があるとします。候補者の数が特定のターゲットに合計される候補者のすべての一意の組み合わせを見つける必要があります。候補者から同じ番号が複数回選ばれることはありません。したがって、要素が[2,3,6,7,8]で、ターゲット値が8の場合、可能な出力は[[2,6]、[8]]になります。 手順を見てみましょう- これを再帰的に解決します。再帰関数の名前はsolve()です。これは、インデックス、配列a、整数b、および別の配列tempを取ります。解決方法は次のように機能します- 空の配列解像度を定義する b =0の場合、tempをresに挿入し

  14. C++での順列シーケンス

    セットが[1,2,3、...、n]のようで、合計nが含まれているとします。ユニークな順列。すべての順列を順番にリストしてラベルを付けることにより、n =3のこれらのシーケンスを取得します。[123、 132、 213、 231、 312、 321]したがって、nとkの場合が与えられたら、k番目の順列シーケンスを返します。 nは1から9(両端を含む)になり、kは1からnになります! (包括的)。たとえば、n=3の場合。 手順を見てみましょう- ans:=空の文字列、サイズnの候補と呼ばれる配列を定義 0からn–1の範囲のiの場合 候補者[i]:=((i + 1)+文字「0」) サイズn

  15. C++でリストを回転

    リンクリストがあるとします。リストを右にk桁回転させる必要があります。 kの値は負ではありません。したがって、リストが[1,23,4,5、NULL]のようで、k =2の場合、出力は[4,5,1,2,3、NULL]になります。 手順を見てみましょう- リストが空の場合は、nullを返します len:=1 tail:=headという1つのノードを作成します テールの次はnullではありません lenを1増やします テール:=テールの次 尻尾の次:=頭 k:=k mod len newHead:=null for i:=0からlen– k テール:=テールの次 new

  16. Pythonの一意のパス

    n x mグリッド(n行m列)の左上隅にロボットがあるとします。ロボットは、どの時点でも下側または右側のどちらかにしか移動できません。ロボットは、グリッドの右下隅に到達しようとしています(下の図で「END」とマークされています)。では、可能な一意のパスがいくつあるかを見つける必要がありますか?たとえば、m=3およびn=2の場合、グリッドは次のようになります- Robo END 出力は3になるので、開始位置から終了位置に到達する方法は全部で3つあります。これらのパスは-です 右→右→下 右→下→右 下→右→右 手順を見てみましょう- これ

  17. C++のUniquePathsII

    n x mグリッド(n行m列)の左上隅にロボットがあるとします。ロボットは、どの時点でも下側または右側のどちらかにしか移動できません。ロボットはグリッドの右下隅に到達しようとしています(下の図で「END」とマークされています)。 グリッド内の一部のセルがマークされており、障害物と見なされます。では、可能な一意のパスがいくつあるかを見つける必要がありますか?たとえば、グリッドが[[0,0,0]、[0,1,0]、[0,0,0]]のような場合、グリッドは次のようになります- Robo Obs END 出力は2になるため、開始位置

  18. C++での最小パス合計

    非負の整数で満たされたmxn行列があると仮定し、そのパスに沿ったすべての数値の合計を最小化する左上隅から右下隅へのパスを見つけます。動きは、どの時点でも下または右のいずれかになります。たとえば、マトリックスが次のような場合 1 3 1 1 5 1 4 2 1 出力は7になり、パスは1,3,1,1,1になります。これにより、合計が最小化されます 手順を見てみましょう- a:=行数、b:=列数 i:=a – 1、j:=b-1 =0 matrix [a、j]:=matrix [a、j] + matrix [a、j

  19. 2D座標点を昇順で印刷し、その後にC++で頻度を印刷します。

    この問題では、(x、y)が2D平面内の点の座標を与えるような2つの配列x []、y[]が与えられます。私たちの仕事は、すべてのポイントとその発生頻度を印刷することです。 問題を理解するために例を見てみましょう Input: x[]={0, 1, 1, 0, 0} ; y[]={1, 2, 2, 2, 1} Output (0, 1) = 2 (1, 2) = 2 (0, 2) = 1 この問題を解決するには、各ポイントの発生頻度を保存する必要があります。したがって、これにはマップデータ構造を使用する必要があります。マップのキーは(x [i]、y [i])であり、マップされた値は整数の発生頻

  20. C++で2Dマトリックスを検索する

    1つのmxn行列で値を検索するための効率的なアルゴリズムを作成したとします。この行列には、以下のようないくつかのプロパティがあります- 各行は左から右に並べ替えられます 各行の最初の数値は、前の行の最後の整数よりも大きくなっています。 したがって、行列が-のような場合 1 3 5 7 10 11 16 20 23 30 34 50 53 62 78 98 また、目標値が16の場合、出力はTrueになります。 手順を見てみましょう- n:=行数、nが0の場合はfalseを返し、m:=列数、m=0

Total 5992 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:130/300  20-コンピューター/Page Goto:1 124 125 126 127 128 129 130 131 132 133 134 135 136