-
Pythonで回転配列の最大加重和を見つけるプログラム
いくつかの要素の配列があるとします。配列要素が回転する場合、最大加重和を見つける必要があります。配列番号の加重和は、次のように計算できます- $$ \mathrm{𝑆=\sum _ {\substack{𝑖=1}}^ {n}𝑖∗𝑛𝑢𝑚𝑠[𝑖]} $$ したがって、入力がL =[5,3,4]の場合、出力は26になります。 配列は[5,3,4]、合計は5 + 2 * 3 + 3 * 4 =5 + 6 + 12 =23 配列は[3,4,5]、合計は3 + 2 * 4 + 3 * 5 =3 + 8 + 15 =26(最大) 配列は[4,5,3]、合計は4 +
-
k個の監視ステーションがPythonの特定のポイントを監視するのに十分かどうかを調べるプログラム
半径rまでの近くの環境を監視できるセンサーモジュールがあるとします。モジュールの監視円のラティスポイントには、監視する必要のあるものがいくつかあります。したがって、k個の低電力モジュールは、それらの特定のポイントのみを監視できるように配置されます。半径の2乗と低電力モジュールのk数を考えると、ポイントを正しく監視できるかどうかを確認する必要があります。監視が可能な場合はtrueを返し、そうでない場合はfalseを返します。 したがって、入力が半径の2乗(j)=4、監視ポイントの数(k)=3のような場合、出力はFalseになります j =4の場合、監視円の円周上に4つのポイントがあります。つ
-
Pythonのリンクリスト内のノードを交換するプログラム
リストLと別の値kがあるとします。 k番目のノードを最初から、k番目のノードを最後から入れ替えて、最後に最終リストを返す必要があります。 したがって、入力がL =[1,5,6,7,1,6,3,9,12] k =3の場合、出力は[1,5,3,7,1,6、 6,9,12]、開始から3番目のノードは6で、終了から3番目のノードであるため、これらは交換されます。 これを解決するには、次の手順に従います- temp:=L 0からk-2の範囲のiについては、 temp:=次のtemp firstNode:=temp secondNode:=L next of tempがnul
-
Pythonの特定の数値リストに対するすべてのクエリのkpr合計を見つけるプログラム
numsの数のリストがあるとします。また、querys [i]に3つの要素[k、p、r]が含まれているクエリのリストもあります。クエリごとに、kpr_sumを見つける必要があります。 kpr_sumの式は次のようになります。 $$ \mathrm{{𝑘𝑝𝑟}\_{𝑠𝑢𝑚}=\ sum _ {\substack{𝑖=𝑃}}^{𝑅−1} \ sum _ {\substack{𝑗=𝑖+1}}^ {𝑅}(𝐾 ⊕(𝐴[𝑖]⊕𝐴[𝑗]))} $$ 合計が大きすぎる場合は、10 ^ 9+7を法とする合計を返します。 したがって、入力がnums =[1,2,3]クエリ
-
数値nをチェックするPythonプログラムがおかしいかどうか
数nがあるとします。 nが変かどうかを確認する必要があります。ここで、-1の場合、数値は奇妙です。2.数値は奇数です。2。数値は2から5の範囲ではありません。3。数値は偶数で、6から20の範囲です。 したがって、入力がn =18のような場合、出力は偶数で6〜20の範囲にあるため、奇妙になります。 これを解決するには、次の手順に従います- nが奇数の場合、 「奇妙な」を返す 1およびn 20の場合、 「奇妙ではない」を返す 6かつn<21の場合、 「奇妙な」を返す 例 理解を深めるために、次の実装を見てみましょう- def solve(n): &nbs
-
Pythonでのスワップ操作後のハミング距離を最小化するプログラム
srcとtgtの2つの整数配列があり、どちらも同じ長さであるとします。また、allowedSwaps [i]にペア(ai、bi)が含まれている配列allowedSwapsもあります。これは、インデックスaiの要素を配列srcの要素インデックスbiと交換できることを示します。 (特定のインデックスのペアの要素を、任意の順序で何度でも交換できます)。同じ長さの2つの配列、srcとtgtのハミング距離は、要素が異なる位置の数です。配列srcに対して任意の量のスワップ操作を実行した後、srcとtgtの最小ハミング距離を見つける必要があります。 したがって、入力がsrc =[2,3,4,5]、tgt
-
i + j+kがnと同じではないトリプレットのリストを見つけるPythonプログラム
3つの数i、j、kと別の数nがあるとします。 i + j + kがnと同じではないすべてのトリプレット(i、j、k)のリストを見つける必要があります。リスト内包表記戦略を使用してこの問題を解決する必要があります。 したがって、入力がi =1、j =1、z =2、n =3の場合、出力は[[0、0、0]、[0、0、1]、[0、0、 2]、[0、1、0]、[0、1、1]、[1、0、0]、[1、0、1]、[1、1、0]、[1、1、2] ] これを解決するには、次の手順に従います- arr =x + y + zの場合、0からiの範囲のすべてのx、0からjの範囲のすべてのy、および0からkの範
-
Pythonで同じ製品のタプルを見つけるプログラム
一意の正の値を持つ配列numがあるとすると、a * b =c * dとなるタプル(a、b、c、d)の数を見つける必要があります。ここで、a、b、c、およびdはnumの要素です。 、およびすべての要素a、b、c、およびdは別個のものです。 したがって、入力がnums =[2,3,4,6]のような場合、(2,6,3,4)、(2,6,4,3)のようなタプルを取得できるため、出力は8になります。 、(6,2,3,4)、(6,2,4,3)、(3,4,2,6)、(4,3,2,6)、(3,4,6,2) 、(4,3,6,2)。 これを解決するには、次の手順に従います- dic:=空のマップ。キーが存在
-
Pythonで再配置された最大の部分行列を見つけるプログラム
m x nのバイナリ行列があるとすると、行列の列を任意の順序で再配置できます。いくつかの並べ替えタスクを実行した後、サブマトリックスのすべての要素が1である、マトリックス内の最大のサブマトリックスの領域を見つける必要があります。 したがって、入力が次のような場合 1 0 1 1 1 1 0 0 1 列を交換した後、のような行列が得られるため、出力は4になります。 1 1 0 1 1 1 0 1 0 ここで、最大部分行列は4つの1を含む正方形のサイズです。 これを解決す
-
Pythonで目標を達成するための最短経路を見つけるためのプログラム
セルに「X」、「O」、「*」、「#」などのさまざまな記号が含まれ、記号がさまざまな意味を持つグリッドが与えられたとします。 「#」は到達したい目標セルです。 「O」は、ゴールセルに移動できる無料のセルです。 「*」はセル内の位置です。 「X」はブロックされたセルであり、それを介して移動することはできません。 グリッド内の現在の位置からゴールセルに到達するために必要な移動の数を見つける必要があります。目標に到達できない場合は、-1を返します。グリッドはプログラムへの入力として与えられます。 したがって、入力が次のような場合 X X O X X X *
-
Pythonで満たすことができる転送要求の数を見つけるためのプログラム
0からn-1までの番号が付けられたn個のホステルの部屋があるとします。ホステルの部屋にいる学生は別の部屋に転校したいと思っており、それを行うためにいくつかのリクエストを出します。ホステルの空席はありません。転校を希望する学生の代わりに別の学生が就任した場合にのみ、転校のリクエストが処理されます。したがって、リクエストを考慮して、満たすことができるリクエストの数を見つける必要があります。 したがって、入力がn =3、requests =[[0,2]、[1,0]、[2,1]]の場合、出力は3になります。 部屋0の学生は部屋2に移動します。 部屋1の学生は部屋0に移動します。 2号室の生徒は
-
Pythonで整数をゼロにするための最小1ビット演算を見つけるプログラム
数nがあるとすると、次の操作を何度でも使用して、それを0に変換する必要があります- nのバイナリ表現の右端のビットを選択します。 (i-1)番目のビットが1に設定され、(i-2)番目から0番目のビットが0に設定されている場合は、nのバイナリ表現のi番目のビットを変更します。 したがって、最後に、nを0に変換するために必要な操作の最小数を見つける必要があります。 したがって、入力がn =6の場合、最初は6 =110であるため、出力は4になります。次に、2番目の操作で「010」に変換し、最初の操作で「011」に変換してから、「 001 は2番目の操作を使用し、最後に最初の操作を
-
Pythonで辞書を指定してターゲット文字列を形成する方法をいくつか見つけるプログラム
単語と呼ばれる文字列のリストがあり、すべての要素が同じ長さであるとします。 targetという文字列もあります。次のルールの下で、指定された単語を使用してターゲットを生成する必要があります- ターゲットは左から右に生成する必要があります。 target[i]がwords[j] [k]と同じ場合、targetのi番目の文字(0インデックス)を取得するために、単語内のj番目の文字列のk番目の文字を選択できます。 j番目の単語文字列のk番目の文字を使用すると、x<=k。の単語ではどの文字列のx番目の文字も使用できなくなります。 ターゲット文字列全体が形成されるまで、これらのプ
-
Pythonで繰り返し整数を配布するプログラム
配列numがあるとすると、最大50個の一意の値があります。また、quantityという別の配列があります。ここで、quantity [i]は、i番目の顧客が注文した値の量を示します。次のような数値を配布できるかどうかを確認する必要があります i番目の顧客は正確に数量[i]のアイテムを受け取ります i番目の顧客が得る価値はすべて等しく、 すべてのお客様が満足しています。 したがって、入力がnums =[5,1,2,2,3,4,4,3,3] amount =[2,2,3]のようである場合、2人の顧客が2つの要素を必要としているため、出力はTrueになります。それぞれ、[2,
-
Pythonで配列の偏差を最小限に抑えるプログラム
配列numsがあるとします。配列の任意の要素に対して、2種類の操作を何度でも実行できます 偶数要素の場合は、2で割ります 奇数の要素の場合は、2を掛けます。 これで、配列の偏差は、配列内の任意の2つの要素間の最大差になります。いくつかの操作を実行した後、配列が持つことができる最小の偏差を見つける必要があります。したがって、入力がnums =[6,3,7,22,5]の場合、配列を次のように作成できるため、出力は5になります。 1つの操作[6,6,7,22,5]と2番目の操作[6,6,7,22,10]、および別の操作[6,6,7,11,10]では、偏差は11-になります。 6=5
-
Pythonでエッジ長が制限されたパスの存在をチェックするプログラム
1つのedgeListを使用するn個のノードを持つ1つの無向加重グラフがあるとします。ここで、edgeList [i]には3つのパラメーター(u、v、w)があり、距離がwのuからvへのパスがあることを示します。 query [i]が(p、q、lim)を持つ別のクエリ配列もあります。このクエリは、距離がlim未満のpからqへのパス(直接または他のノード経由)があるかどうかを尋ねようとしています。クエリごとにTrue/Falseの結果を保持する配列を返す必要があります。 したがって、入力が次のような場合 2を使用して2に変換します。コストは14で15未満です。 これを解決するには、次の手
-
PythonでK個の連続するスワップの最小隣接スワップを見つけるプログラム
1つのバイナリ配列numsと値kがあるとします。 1回の移動で、2つの隣接するインデックスを選択し、それらの値を交換できます。 numsがk個の連続した1になるように、必要な最小移動数を見つける必要があります。 したがって、入力がnums =[1,0,0,1,0,1,0,1]、k =3の場合、1回のスワップで[1,0 、0,1,0,1,0,1]から[1,0,0,0,1,1,0,1]、次に[1,0,0,0,1,1,1,0] 。 これを解決するには、次の手順に従います- j:=0 val:=0 ans:=999999 loc:=新しいリスト インデックスiご
-
Pythonの配列から要素を使用して最大XORを見つけるプログラム
負でない値を持つnumsという配列があるとします。また、querys [i]がペア(xi、mi)を持つquerysという別の配列もあります。 i番目のクエリの答えは、xiの最大ビット単位XOR値と、mi以下のnumsの要素です。 numsのすべての要素がmiより大きい場合、答えは-1です。したがって、答えのサイズがクエリのサイズと同じで、answer[i]がi番目のクエリの答えである配列の答えを見つける必要があります。 したがって、入力がnums =[0,1,2,3,4]クエリ=[[3,1]、[1,3]、[5,6]]の場合、出力は[3、 3,7]、なぜなら 0と1は1以下です。0XOR
-
KのKの値を見つけるプログラム-C++の類似した文字列
2つの文字列sとtがあるとします。これらの2つの文字列は、s内の2つの文字の位置を正確にK回入れ替えて、結果の文字列がtになる場合、Kに似ています。 2つのアナグラムsとtがあり、sとtがKに類似している最小のKを見つける必要があります。 したがって、入力がs =abc、t =bacの場合、出力は1になります。 これを解決するには、次の手順に従います- 関数swapp()を定義します。これには、文字列s、i、j、が必要です。 x:=s [i]、y:=s [j] s [i]:=y、s [j]:=x メインの方法から、次のようにします- AがBと同じ場合、:、
-
Pythonで個別のサブシーケンスの数を見つけるプログラム
文字列sがあるとすると、文字列sの個別のサブシーケンスの数をカウントする必要があります。答えが大きすぎる場合は、10 ^ 9+7を法とする結果を返します。 したがって、入力がs =babの場合、6つの異なるシーケンスがあり、これらは a、 b、 ba 、 ab 、 bb 、 abb であるため、出力は6になります。 。 これを解決するには、次の手順に従います- dp:=サイズがsと同じで、0で埋められた配列 m:=10 ^ 9 + 7 各インデックスiとsのアイテム文字について、実行します ind:=右からsのi番目の文字のインデックス dp [i]:=1