-
Pythonで中央値がMになるように、最初のN個の自然数の順列でサブ配列の数を見つけます
最初のN個の自然数の順列を含む配列Aがあり、別の数Mも与えられていると仮定します。ここで、M≤Nの場合、次のようなサブ配列の数を見つける必要があります。シーケンスの中央値はMです。ご存知のように、シーケンスの中央値は、昇順で並べ替えた後のシーケンスの中央にある要素の値として定義されます。偶数の長さのシーケンスでは、2つの中央の要素の左側が使用されます。 したがって、入力がA =[3、5、6、4、2]およびM =5の場合、必要なサブ配列は[3、5、6]、[5]、[5]であるため、出力は4になります。 、6]および[5、6、4]。 これを解決するには、次の手順に従います- n:=arrのサ
-
C++で指定された依存関係からタスクの順序を見つけます
n個の異なるタスクがあるとします。これらのタスクには、0からn-1までのラベルが付けられています。一部のタスクには前提条件のタスクがある場合があるため、例として、タスク2を選択する場合は、最初にタスク1を終了する必要があります。これはペアとして表されます-[2、1]タスクの総数とリストがある場合前提条件のペアのうち、すべてのタスクを完了するには、タスクの順序を見つける必要があります。正しい注文が複数ある場合は、そのうちの1つを返品できます。また、指定されたすべてのタスクを完了することが不可能な場合は、空の配列を返します。 したがって、入力がn =4で、A =[[1、0]、[2、0]、[3、2
-
行と列の最大の要素がPythonで指定されている場合に、元の行列を見つけます
それぞれサイズNとMの2つの配列AとBがあり、1つのN X Mバイナリ行列もあるとします。1は元の行列に正の整数があったことを示し、0は位置は元の行列にも0を保持しています。 A [i]がi番目の行の最大要素を示し、B [j]がj番目の列の最大要素を示すように、元の行列を生成する必要があります。 したがって、入力がA =[4、2、3]、B =[3、1、0、0、4、0、5]行列のような場合、出力は行列になります これを解決するには、次の手順に従います- N:=Aのサイズ M:=Bのサイズ 0からNの範囲のiの場合、実行 0からMの範囲のjについては、次のようにします
-
Pythonで最初に回文文字列を取得するためにキャラクターを再配置するプレーヤーを見つけます
小文字の文字列Sがあり、2人のプレーヤーがゲームをプレイしているとします。ルールは次のとおりです- いずれかの動きで、プレイヤーがストリングのキャラクターをシャッフルして回文ストリングを取得できる場合、プレイヤーはゲームに勝ちます。 ストリングからキャラクターを削除しなければならない場合、プレーヤーは勝つことができません。 両方のプレーヤーがゲームを最適にプレイし、player1がゲームを開始することを覚えておく必要があります。ゲームの勝者を見つける必要があります。 したがって、入力が「pqpppq」のような場合、最初のステップでプレーヤー1が「ppqqpp」を取得するように
-
Pythonで指定されたボールを占めるボックスの位置を見つけます
2つの配列AとBがあるとします。Aのサイズは行の数であり、A[i]はi番目の行のボックスの数です。また、Bはボールの配列であり、B[i]はボール上の数字を示します。ボールi(値B [i])は、開始からの位置がB[i]であるボックスに配置されます。各B[i]に対応するボックスの行と列を見つける必要があります。 したがって、入力がA =[3、4、5、6]、B =[1、3、5、2]の場合、出力は[(1、1)、(1、3)、( 2、2)、(1、2)] B [0] =1の場合、ボックスの位置は1行目、1列目B [1] =3になり、ボックス位置は1行目、3列目、Bになります。 [2] =5の場合、ボックス
-
マルコフ連鎖の特定の時間における状態の確率を見つける-Pythonで1を設定
マルコフ連鎖グラフgがあるとします。時間t=0のときに状態Sから開始すると、時間Tで状態Fに到達する確率がわかります。マルコフ連鎖は、さまざまな状態と、ある状態から別の状態に移動する確率で構成されるランダムプロセスです。これは有向グラフとして表すことができます。ノードは状態であり、エッジにはあるノードから別のノードに移動する確率があります。ある状態から別の状態に移動するには、単位時間がかかります。発信エッジの確率の合計は、ノードごとに1つです。 したがって、入力がN =6、S =4、F =2、T =100の場合、出力は0.28499144801478526になります。 これを解決するには、
-
Pythonで特定の配列のサブセットの合計として表すことができない最小の正の整数値を見つけます
正の数の並べ替えられた配列があるとすると、この配列は昇順で並べ替えられます。指定されたサブセットの要素の合計として表すことができない最小の正の値を見つける必要があります。セットする。この問題はO(n)時間で解決する必要があります。 したがって、入力がA =[1、4、8、12、13、17]の場合、出力は2になります。 これを解決するには、次の手順に従います- n:=Aのサイズ 答え:=1 0からnの範囲のiの場合、実行 A [i] <=答えの場合、 回答:=回答+ A [i] それ以外の場合 ループから出てきます 回答を返す
-
Pythonで別の文字列のすべての文字を含む文字列内の最小のウィンドウを検索します
2つの文字列s1とs2があるとすると、s2のすべての文字が効率的に使用されるように、s1で最小の部分文字列を見つける必要があります。 したがって、入力がs1 =I am a student、s2 =mdnの場合、出力は mastudenになります これを解決するには、次の手順に従います- N:=26 str_len:=main_strのサイズ、patt_len:=パターンのサイズ str_len
-
PythonでN以下のすべての切り捨て可能な素数の合計を求めます
与えられた整数Nがあると仮定します。 N未満のすべての切り捨て可能素数の合計を見つける必要があります。切り捨て可能素数は左切り捨て可能素数であることがわかっているため(先頭の「左」桁が連続して削除される場合、結果のすべての数値は素数として扱われます)右切り捨て可能素数(最後の「右」桁が連続して削除された場合、結果のすべての数値は素数として扱われます)。 9137、137、37、および7が素数であるため、これは左切り捨て可能素数であるため、切り捨て可能素数の例は9137です。したがって、9137は切り捨て可能な素数です。 したがって、入力がN =55の場合、出力は(2 + 3 + 5 + 7
-
Pythonで特定の配列のすべてのサブセットから可能な最大差の合計を求めます
n個の値の配列Aがあるとします(要素は区別できない場合があります)。与えられた配列のすべてのサブセットから可能な最大差の合計を見つける必要があります。ここで、max(s)が任意のサブセットの最大値を示し、min(s)がセットの最小値を示すとします。可能なすべてのサブセットのmax(s)-min(s)の合計を見つける必要があります。 したがって、入力がA =[1、3、4]の場合、出力は9になります。 これを解決するには、次の手順に従います- n:=Aのサイズ リストを並べ替えるA sum_min:=0、sum_max:=0 0からnの範囲のiの場合、実行 su
-
Pythonでソートされた3つの異なる配列の(max(A [i]、B [j]、C [k])– min(A [i]、B [j]、C [k]))を最小化します
3つのソートされた配列A、B、およびC(これらは異なるサイズにすることができます)があるとすると、任意のトリプレットの最大数と最小数の間の最小絶対差を計算する必要があります(A [i]、B [j]、 C [k])それぞれ配列A、B、Cの下にあるように したがって、入力がA:[2、5、6、9、11]、B:[7、10、16]、C:[3、4、7、7]のようである場合、出力は次のように1になります。 A [i] =6 B [j]=7およびC[k]=7を選択すると、max(A [i]、B [j]、C [k])-min(A [i]、B [j]、C [k]))=| 7-6 | =1 これを解決するには
-
Pythonで配列を等しい合計のサブ配列に分割できる合計を見つけます
整数Aの配列があるとします。値sum[i]の場合、配列をsum sum [i]のサブ配列に分割できるように、sumのすべての値を見つける必要があります。配列を等しい合計のサブ配列に分割できない場合は、-1を返します。 したがって、入力がA =[2、4、2、2、2、4、2、6]のような場合、配列は次のサブ配列に分割できるため、出力は[6,8,12]になります。合計6、8、および12。これらは次のとおりです。[{2、4}、{2、2、2}、{4、2}、{6}] [{2、4、2}、{2、2 、4}、{2、6}] [{2、4、2、2、2}、{4、2、6 これを解決するには、次の手順に従います-
-
Pythonで3D図形の表面積を見つける
N * M行列Aがあるとすると、これは3D図形の表現です。ポイント(i、j)での建物の高さはA[i][j]です。図形の表面積を見つける必要があります。 したがって、入力がN =3、M =3、A =[[1、4、5]、[3、3、4]、[1、3、5]]の場合、出力は72になります。 これを解決するには、次の手順に従います- res:=0 0からNの範囲のiの場合、実行 0からMの範囲のjについては、次のようにします up_side:=0 left_side:=0 0の場合、 up_side:=array [i-1、j] 0の場合、
-
回文であり、Pythonで指定された時間の後に来る時間を見つけます
24時間形式の時刻をHH:MMとして表す文字列sがあるとします。これにより、HHは0〜23の範囲になり、MMは0〜59の範囲になります。次に近い時刻を見つける必要があります。文字列として読み取ったときの回文。そのような文字列がない場合は、-1を返します。 したがって、入力が「22:22」の場合、出力は「23:32」になります。 これを解決するには、次の手順に従います- n:=sのサイズ hour_string:=sのサブ文字列[インデックス0から2まで] 分:=s [インデックス3から5]の部分文字列で、整数に変換します rev_hour:=hour_stringを
-
Pythonでボードを正方形にカットするための最小コスト
長さp、幅qのボードがあるとします。このボードをp*qの正方形に分割して、分割のコストを可能な限り最小限に抑える必要があります。各エッジの切削コストが示されます。 したがって、入力がX_slice =[3,2,4,2,5]の場合、Y_slice =[5,2,3] その場合、出力は65になります これを解決するには、次の手順に従います- res:=0 水平:=1、垂直:=1 i:=0、j:=0 i
-
Pythonで可能になるまで、配列内の要素のペアワイズ差を追加して、勝者を見つけます
正の整数の配列Aがあり、要素が一意であるとすると、2人のプレーヤーPとQがゲームをプレイしています。各移動で、1人のプレーヤーが配列から2つの数字aとbを選び、| a –b|の場合その後、プレーヤーはこの番号を配列に追加します。プレイヤーが移動できない場合、ゲームに負けます。プレーヤーPが常にゲームを開始する場合は、ゲームの勝者を見つける必要があります。 したがって、入力がA =[8,9,10]の場合、出力はPになります。 これを解決するには、次の手順に従います- n:=arrのサイズ g:=arr [0]、max_val:=arr [0] 1からnの範囲のiの場合、実
-
Pythonで2つの部分に分割されないように、チェス盤で最小限のカットを行うことができます
A x Bのチェス盤(マトリックス)が1つあるとすると、ボードが2つの部分に分割されないように、このボードで作成できるカットの最大数を計算する必要があります。 したがって、入力がA=2およびB=4のような場合、 その場合、出力は3になります。 これを解決するには、次の手順に従います- res:=0 res:=(M-1)*(N-1) return res 例 理解を深めるために、次の実装を見てみましょう- def max_cuts_count(M, N): res = 0 res = (M - 1) * (N - 1
-
Pythonでスコアがバイナリ文字列として与えられるゲームの勝者を探す
バレーボールの試合のスコアを表すバイナリ文字列が1つあるとすると、次の条件に基づいて試合の勝者を見つける必要があります- 2つのチームが対戦し、両方のチームが14ポイントに達した場合を除いて、最初に15ポイントを獲得したチームが勝者になります。 その時点で両方のチームが14ポイントに達すると、2ポイントのリードを維持しているチームが勝者になります。 指定されたバイナリ文字列から、0はチームがポイントを失うことを表し、1はチームがポイントを獲得することを示します。チームが試合に勝ったか負けたかを確認する必要があります。 したがって、入力がscore =100110011011
-
Pythonでオイラー回路を作成するために追加する必要のある最小エッジ
b個のノードと数個のエッジの無向グラフがあるとします。このグラフでオイラー回路を構築するために必要な最小エッジを見つける必要があります。 したがって、入力が次のような場合 その場合、出力は1になります。 これを解決するには、次の手順に従います- 関数dfs()を定義します。これには、g、visit、odd_vert、degree、comp、vが必要です visit [v]:=1 次数[v]mod2が1と同じ場合、 odd_vert [comp]:=odd_vert [comp] + 1 範囲0からg[v]のサイズのuの場合、実行 visit [u]が0と同じ場合、
-
Pythonでa+b + c =sumとなるように、異なる3つの配列から3つの要素を見つけます
3つの配列A、B、Cと、「sum」という別の値があるとします。a+ b + cとなるような3つの要素a、b、cがあるかどうかを確認する必要があります。 =合計とa、b、cは3つの異なる配列の下にある必要があります。 したがって、入力がA =[2,3,4,5,6]、B =[3,4,7,2,3]、C =[4,3,5,6,7]の場合、合計=12の場合、4 + 2 + 6 =12であり、4、2、6はそれぞれA、B、Cから取得されるため、出力はTrueになります。 これを解決するには、次の手順に従います- 0からAのサイズの範囲のiの場合、実行 0からBのサイズの範囲のjについては、次の