-
C++でのソースからターゲットへのすべてのパス
N個のノードを持つ有向非巡回グラフがあるとします。ノード0からノードN-1までのすべての可能なパスを見つけて、それらを任意の順序で返す必要があります。グラフは次のように与えられます。ノードは0、1、...、graph.length-1です。graph[i]は、エッジ(i、j)が存在するすべてのノードjのリストです。 したがって、入力が[[1,2]、[3]、[3]、[]]の場合、出力は[[0,1,3]、[0,2,3]]になります。 これを解決するには、次の手順に従います- resと呼ばれる1つの2D配列を作成します 解決と呼ばれるメソッドを定義します。これにより、グラフ、ノード、
-
C++でシーケンスを増やすための最小スワップ
同じ長さのゼロ以外の2つの整数シーケンスAとBがあるとします。要素A[i]とB[i]を交換できます。両方の要素がそれぞれのシーケンスで同じインデックス位置にあることに注意する必要があります。いくつかのスワップを完了した後、AとBは両方とも厳密に増加しています。両方のシーケンスを厳密に増やすには、スワップの最小数を見つける必要があります。 したがって、入力がA=[1,3,5,4]およびB=[1,2,3,7]の場合、A[3]をB[3]と交換すると、答えは1になります。その場合、シーケンスはA=[1,3,5,7]およびB=[1,2,3,4]になり、どちらも厳密に増加します。 これを解決するには、
-
C++でのキャメルケースマッチング
クエリのリストとパターンがあるとすると、ブール値のリストとなる回答を返す必要があります。ここで、answer [i]は、querys[i]がパターンに一致する場合にのみtrueになります。クエリと同じになるようにパターンワードに小文字を挿入できる場合、クエリワードは特定のパターンに一致します。 したがって、入力が[FooBar、 FooBarTest、 FootBall、 FrameBuffer、 ForceFeedBack]のようで、pattern =FBの場合、結果は[true、false、true、false、false]になります。 。 これを解決するには、次の手順に従います-
-
C++で可能な限り土地から遠い
0や1などの値のみを含む1つのNxNグリッドがあり、0は水を表し、1は土地を表すとすると、最も近い土地セルまでの距離が最大になるように水セルを見つけて、距離を返す必要があります。ここでは、マンハッタン距離を使用します。2つのセル(x0、y0)と(x1、y1)の間の距離は| x0--x1|です。 + | y0--y1|。グリッドに土地や水が存在しない場合は、-1を返します。 1 0 1 0 0 0 1 0 1 セル(1,1)は、距離2のすべての土地から可能な限り離れているため、出力は2になります。 これを解決するには、次の手順に従います
-
C++での無効なトランザクション
いくつかのトランザクションがあるとします。 -の場合、トランザクションは無効である可能性があります 金額が$1000を超える、または; 別の都市で同じ名前の別の取引から60分以内に発生した場合(およびそれを含む場合)。 ここで、各トランザクション文字列transactions [i]は、トランザクションの名前、時間(分単位)、金額、および都市を表すコンマ区切りの値で構成されます。トランザクションのリストがあり、無効である可能性のあるトランザクションのリストを見つけます。したがって、入力が[alice、20,800、mtv、 bob、50,1200、mtv]の場合、答えは[b
-
C++でのK-連結の最大合計
整数配列arrと1つの整数kがあるとすると、k回繰り返すことによって配列を変更する必要があります。したがって、arr =[1、2]およびk =3の場合、変更された配列は[1、2、1、2、1、2]になります。 次に、変更された配列で最大のサブ配列の合計を見つける必要があります。サブ配列の長さは0で、その場合の合計は0であることに注意してください。答えは非常に大きい可能性があるため、10 ^ 9+7を法とする答えを見つけます。 したがって、入力が[1、-2,1]のようで、k =5の場合、結果は2になります。 これを解決するには、次の手順に従います- getKadane()というメソッド
-
C++でバランスの取れた文字列の部分文字列を置き換えます
「Q」、「W」、「E」、「R」の4種類の文字のみを含む文字列があるとします。文字列のそれぞれがn/4回出現する場合、文字列のバランスがとられます。ここで、nは文字列の長さです。元の文字列のバランスをとるために、同じ長さの他の文字列に置き換えることができる部分文字列の最小の長さを見つけます。したがって、s =“ QQWE”の場合、出力は1になります。これは、QをRに置き換えて、「RQWE」のバランスをとることができるためです。 文字列のバランスがすでに取れている場合は0を返します。 これを解決するには、次の手順に従います- 1つのマップを作成するm sの各文字について、文字の頻度をマップ
-
C++でのバイナリ表現の循環順列
2つの整数nがあり、開始するとします。私たちのタスクは、次のように(0,1,2 .....、2 ^ n -1)の順列pを返すことです- p[0]=開始 p[i]とp[i+ 1]は、バイナリ表現が1ビットだけ異なります。 p[0]とp[2^ n -1]も、バイナリ表現で1ビットだけ異なる必要があります。 したがって、入力がn=2およびstart=3の場合、返される配列は[3,2,0,1]になり、これらは[11,10,00,01]になります。 これを解決するには、次の手順に従います- ansは配列です 0〜2^nの範囲のiの場合 start XOR i XOR i/2をansに挿入
-
C++での一意の文字を含む連結文字列の最大長
文字列arrの配列があるとします。文字列sは、一意の文字を持つarrのサブシーケンスを連結したものです。 sの可能な最大長を見つけます。入力が[cha、 r、 act、 ers]の場合、出力は6になります。考えられる解決策は、「chaers」と「acters」です。 これを解決するには、次の手順に従います- ok()という1つのメソッドを作成します。これには、文字列sとtが必要です。これは以下のように動作します 1つのマップを作成するx 0からsのサイズまでの範囲のiの場合 x[s[i]]を1増やします 1の場合、falseを返します 0からtのサイズまでの範囲のiの場合 x[
-
C++で2行のバイナリ行列を再構築します
n列と2行の行列の次の詳細があるとします- 行列要素は0または1のいずれかになります 0番目(上)の行の要素の合計は上に示されます。 1番目(下)の行の要素の合計は下に示されます。 i番目の列(0インデックス)の要素の合計はcolsum [i]です。ここで、colsumは長さnの整数配列として指定されます。 タスクは、upper、lower、colsumで行列を再構築することです。 2D整数配列として見つける必要があります。有効な解決策が複数ある場合は、それらのいずれかが受け入れられます。有効な解決策がない場合は、空の2D配列を返します。したがって、入力がupper =2、lowe
-
C++で番号をエンコードする
非負の整数nがあり、そのエンコードされた形式を見つける必要があるとします。エンコード戦略は次のようになります- Number エンコードされた番号 0 “” 1 「0」 2 「1」 3 ” 00” 4 ” 01” 5 ” 10” 6 ” 11” 7 ” 000” したがって、数値が23の場合、結果は1000になり、数値が54の場合、結果は10111になります。 これを解決するには、次の手順に従います- binという1つのメソッドを作成します。これには、nとkが必要です。このメソッドは、次のよ
-
C++で最小の共通領域
各リストの最初のリージョンにそのリスト内の他のすべてのリージョンが含まれているリージョンのリストがあるとします。基本的に、領域Xに別の領域Yが含まれている場合、XはYよりも大きくなります。また、定義上、領域Xにはそれ自体が含まれます。したがって、2つの領域r1とr2がある場合、両方を含む最小の領域を見つける必要があります。したがって、r1にr3が含まれるようなr1、r2、およびr3がある場合、r2にr3が含まれるようなr2がないことが保証されます。したがって、入力が[[Earth、 North America、 South America]、[North America、 United Sta
-
C++で3で割り切れる最大の合計
整数の配列numsがあるとすると、3で割り切れるような、与えられた配列の要素の可能な最大の合計を見つける必要があります。したがって、入力が[3,6,5,1,8]の場合、サブ配列は[3,6,1,8]であり、合計は18であるため、出力は18になり、3で割り切れます。 。 これを解決するには、次の手順に従います- n:=nums配列のサイズ サイズ(n + 1)x3の2次元配列dpを1つ作成します set dp [0、0]:=0、dp [0,1]:=-inf、dp [0,2]:=inf 1からnの範囲のiの場合; x:=nums [i-1] 0〜2の範囲のjの場合、dp [i、j]:
-
C++で材料の無駄がないハンバーガーの数
2つの整数tomatoSlicesとcheeseSlicesがあるとします。これらはさまざまなハンバーガーの材料です- ジャンボバーガー:トマトスライス4枚とチーズスライス1枚。 スモールバーガー:トマトスライス2枚とチーズスライス1枚。 [total_jumbo、total_small]を見つけて、残っているtomatoSlicesの数が0に等しく、残っているcheeseSlicesの数も0になるようにする必要があります。残りのtomatoSlicesとcheeseSlicesを0に等しくすることができない場合はreturn []。したがって、入力がtomatoSlices=16および
-
C++ですべてのものを含む正方形の部分行列を数える
サイズがmxnのバイナリ行列を想定します。すべて1で、正方形の部分行列の数を数える必要があります。したがって、行列が-のような場合 0 1 1 1 1 1 1 1 0 1 1 1 したがって、15個の正方形があります。単一のものの10の正方形、4つのものの4つの正方形、および9つのものの1つの正方形。 これを解決するには、次の手順に従います- set ans:=0、n:=行数およびm:=列数 0からm–1の範囲のiの場合 ans:=ans + matrix [n – 1、i] 0からn–1の範囲のiの場合 a
-
C++で所属するグループサイズを指定して人々をグループ化する
IDが0からn-1の範囲にあるn人がいて、各人が正確に1つのグループに属しているとします。長さnの配列groupSizesがあります。この配列は、各人が属するグループサイズ、存在するグループ、および各グループに含まれる人のIDを見つける必要があることを示しています。 入力が− [3,3,3,3,3,1,3]のようであるとすると、出力は[[5]、[0、1、2]、[3、4、6]]、その他可能解は[[2,1,6]、[5]、[0,4,3]]または[[5]、[0,6,2]、[4,3,1]]になります。 これを解決するには、次の手順に従います- 1つのマップを作成するm 0から指定された配列a–1の
-
C++でしきい値が与えられた最小の除数を見つける
numsと呼ばれる整数の配列としきい値である整数kがあるとすると、正の整数除数を選択し、すべての配列をそれで除算し、除算の結果を合計します。上記の結果がしきい値k以下になるような最小の除数を見つける必要があります。たとえば、− nums=[1,2,5,9]およびk=6の場合、出力は5になります。除数が1の場合、合計は(1 + 2 + 5 + 9)=17として取得できます。除数が4の場合、合計7を(1 + 1 + 2 + 3)として取得できます。除数が5の場合、合計は(1 + 1 + 1 + 2)=5になります 答えがあることが保証されています。 これを解決するには、次の手順に従います-
-
C++のシーケンシャルディジット
整数があり、数値の各桁が前の桁より1つ多い場合にのみ、連続した桁があるとします。 [low、high]の範囲内で、連続する数字を持つすべての整数のソートされたリストを見つける必要があります。したがって、低=100および高=300の場合、出力は[123,234]になります。 これを解決するには、次の手順に従います- 1つの配列解像度を作成 1からnの範囲のiの場合 j:=1の場合、j + i – 1 <=9まで x:=0 0からi–1の範囲のkの場合 x:=10x +(j + k) 低い
-
配列をC++のK個の連続した数値のセットに分割します
整数numsと正の整数kの配列があるとすると、この配列をk個の連続した数のセットに分割できるかどうかを調べる必要があります。したがって、可能であればTrueを返す必要があり、そうでない場合はFalseを返す必要があります。したがって、入力が[1,2,3,3,4,4,5,6]のようで、k =4の場合、出力はtrueになります。これは、[1,2,3,4]と[3,4,5,6]のように配列を分割できるためです。 これを解決するには、次の手順に従います- 1つのマップmを作成し、n:=nums配列のサイズを設定します numsの各要素eについて m[e]を1増やします cnt:=0 並べ替
-
C++でターゲットに最も近い変異配列の合計
整数配列arrとターゲット値targetがあるとすると、指定された配列のvalueより大きいすべての整数を変更すると、配列の合計が次のように等しくなるような整数値を見つける必要があります。ターゲットにすることが可能です。それらが同じである場合は、そのような最小の整数を返します。したがって、配列が[4,9,3]のようで、ターゲットが10の場合、出力は3を使用すると3になり、配列は[3,3,3]になるため、合計は9になります。これは最も近い要素です。 10まで。 これを解決するには、次の手順に従います- n:=配列のサイズ、avg:=total / n、set sum:=0およびcnt:=0