-
Pythonでn未満の素数のリストを生成する
数nがあるとすると、n以下のすべての素数のリストを昇順で生成する必要があります。 1は素数ではないことに注意する必要があります。 したがって、入力が12のような場合、出力は[2、3、5、7、11]になります。 これを解決するには、次の手順に従います- ふるい:=サイズn+1のリストとTrueで埋める primes:=新しいリスト、最初は空白 2からnの範囲のiについては、 sieve [i]がTrueの場合、 素数の最後にiを挿入 iからnの範囲のjについては、各ステップでiずつ更新します。 sieve [j]:=False 素数を返す 理解を深めるために、次
-
Pythonで最大公約数
numsと呼ばれる正の数のリストがあるとすると、それぞれの数を割る最大の正の数を見つける必要があります。 したがって、入力が[14,28,70,56]の場合、出力は14になります。 これを解決するには、次の手順に従います- ans:=numsの最初の要素 numsのxごとに、 ans:=ansとxのgcd 回答を返す 理解を深めるために、次の実装を見てみましょう- 例 import math class Solution: def solve(self, nums): ans = nums[0]  
-
Pythonのグループ整数
numsという数字のリストがあるとすると、次のようにリストを1つ以上のグループに分割できるかどうかを確認する必要があります。1。各グループのサイズが2以上。2。すべてのグループのサイズが同じ。 3.各グループに存在するすべての番号は同じです。 したがって、入力が[3、4、6、9、4、3、6、9]の場合、出力はTrueになります。 これを解決するには、次の手順に従います- counts:=各キーが個別の要素であり、値がそれらの頻度であるマップ temp:=0 カウントのカウントごとに、 tempが0と同じ場合、 temp:=counts [count] それ以外の場合、
-
Pythonで最も近い平方根を推測する
非負の数nがあるとすると、r * r =nとなるような数rを見つけ、最も近い整数に切り捨てる必要があります。組み込みの平方根関数を使用せずにこの問題を解決する必要があります。 したがって、入力が1025のような場合、出力は32になります。 これを解決するには、次の手順に従います- n <=1の場合、 return n 開始:=1、終了:=n 開始<終了中、実行 mid:=start + end / 2 mid * mid <=nの場合、 start:=mid + 1 それ以外の場合、 end:=mid リターンスタート-1 理解を深めるために、次
-
Pythonのハッピー数
数nがあるとします。ハッピー数が1つかどうかを確認します。ご存知のように、ハッピー数は数値であり、正の整数で始まり、数値をその桁の2乗の合計で置き換えます。このプロセスは、1になるまで繰り返されます。それ以外の場合は、サイクルで無限にループします。これらの数字は、1が見つかったときに、幸せな数字になります。 したがって、入力は19のようになり、数値はハッピー数であるため、出力はtrueになります。 19からわかるように、次のようになります 1 2 + 9 2 =82 8 2 + 2 2 =68 6 2 + 8 2 =100 1 2 + 0 2 +
-
Pythonで数値を最大にするために5を挿入
数nがあるとすると、その数のどこかに5を挿入して、作成できる最大数を見つける必要があります。 したがって、入力がn =826のような場合、出力は8526になります。 これを解決するには、次の手順に従います- temp:=nを文字列として ans:=-inf 0からtempのサイズまでの範囲のiについては、 cand:=インデックス0からiまでのtempのサブストリング「5」を連結します。インデックスiからendまでのtempのサブストリングを連結します iが0と同じで、temp[0]が-と同じ場合、 次の反復に進む ans:=ansの最大数、およびカンド数 回答を返
-
Pythonで最も頻度の高い要素の頻度をカウントする
numsという数字のリストがあるとすると、最も頻繁に存在する要素を見つけて、その要素の出現回数を取得する必要があります。 したがって、入力が[1,5,8,5,6,3,2,45,7,5,8,7,1,4,6,8,9,10]の場合、出力は次のようになります。番号5は3回発生するため3。 これを解決するには、次の手順に従います- max:=0 長さ:=numsのサイズ 0から長さ2の範囲のiの場合は、 count:=1 i + 1から長さ-1の範囲のjについては、 nums[i]がnums[j]と同じ場合、 count:=count + 1 max
-
Pythonでソートされた形式の要素の正方形のリスト
ソートされた番号のリストがあるとします。各要素を二乗し、ソートされた順序で出力を見つける必要があります。負の数と0を入力として入力することもできます。 したがって、入力が[-12、-6、-5、-2,0,1,2,4,8,9,10,15,18,20,35,38,69]の場合、出力は[0、1、4、4、16、25、36、64、81、100、144、225、324、400、1225、1444、4761]になります これを解決するには、次の手順に従います- 新しいリストを作成するL numsの各要素eについて: e^2をLに挿入 Lを並べ替えた順序で返します。 理解を深めるために、次の実
-
Pythonで無限文字列にインデックスを付ける
文字列sと2つの整数iとj(i
-
Pythonでゼロをリストの最後にインプレースで移動
数値numsのリストがあるとすると、リストをインプレースで更新して、すべてのゼロをリストの最後に配置する必要があります。また、他の要素の相対的な順序は変更しないでください。これは、O(1)の追加スペースで解決する必要があります。 したがって、入力が[2,0,1,4,0,5,6,4,0,1,7]の場合、出力は[2、1、4、5、6、4、1]になります。 、7、0、0、0] これを解決するには、次の手順に従います- Lのサイズが0と同じ場合、 空白のリストを返す k:=0 0からLのサイズの範囲のiについては、 L [i]が0と同じでない場合、 L [k]:=L [i]
-
Pythonの整数から基数3の数値
数値nがあるとすると、この数値に相当する基数3を文字列として見つける必要があります。 したがって、入力が17のような場合、出力は122になります。 これを解決するには、次の手順に従います- n <0の場合: 記号:=-1 それ以外の場合は記号:=空白の文字列 n:=| n | n <3の場合、 nを文字列として返す s:=空白の文字列 nは0と同じではありませんが、 s:=(n mod 3)連結sの文字列 n:=(n / 3)の商 return sign concatenate s 理解を深めるために、次の実装を見てみましょう- 例 class So
-
Pythonでの文字列インターリーブ
2つの文字列sとtがあるとすると、最初の文字列sで始まる2つの文字列がインターリーブされていることを確認する必要があります。文字列に文字が残っている場合は、最後に追加されます。 したがって、入力がs =abcd、t =pqrstuの場合、出力は apbqcrdstuになります。 これを解決するには、次の手順に従います- res:=空白の文字列 i:=0 m:=sの最小サイズ、tのサイズ i
-
Pythonで交差する間隔を見つける
間隔のリストがあり、各間隔が[start、end]のようであると仮定します。これは、間隔の開始時間と終了時間を表します(両端を含む)。それらの交点、つまり、指定されたすべての間隔内にある間隔を見つける必要があります。 したがって、入力が[[10、110]、[20、60]、[25、75]]の場合、出力は[25、60]になります。 これを解決するには、次の手順に従います- 開始、終了:=間隔リストから最後の要素を削除した後の間隔 間隔が空でない間は、 start_temp、end_temp:=間隔リストから最後の要素を削除した後の間隔 start:=startの最大値、start_tem
-
Pythonの逆階乗
数aがあるとすると、nの階乗(n!)がaと同じになるようにnを見つける必要があります。ご存知のように、階乗n =n *(n --1)*(n --2)* ... * 1.そのような整数nがない場合は、-1を返します。 したがって、入力がa =120のような場合、出力は5になります。 これを解決するには、次の手順に従います- i:=0、num:=1 L:=新しいリスト i
-
Pythonで平均kを作成するために1つを削除します
numsと整数kという数値のリストがあるとすると、平均を正確にkに等しくするために、リストから正確に1つの要素を削除できるかどうかを確認する必要があります。ここで、いくつかの制約があることに注意する必要があります- 2≤n≤1,000ここで、nはnumsリストの要素数です nums [i]、k≤1,000,000 したがって、入力が[5,3,2,4,6,10]、k =4の場合、出力は10を削除した場合と同様に真になり、要素の平均は(5 + 3 + 2 +)になります。 4 + 6)/ 5 =4、これはkと同じです。 これを解決するには、次の手順に従います- s:=numsのすべて
-
PythonのKと-K
numsと呼ばれる数のリストがあるとすると、kと-kの両方がnumsに存在する最大の数kを見つける必要があります(同じ数でもかまいません)。そのような要素がない場合は、-1を返します。 したがって、入力が[-5、2、9、-6、5、-9]の場合、出力は9になります。 これを解決するには、次の手順に従います- L1:=0と正の要素の数値のリスト L2:=0と負の要素の数値のリスト L1を逆の順序で並べ替えます リストL2を並べ替える L1の各iについて、 L2の各jについて、 i + jが0と同じ場合、 私を返す 0の場合、 現在のループから抜け出します 戻り値-
-
Pythonでの騎士の攻撃
長方形のチェス盤を表す2次元のバイナリ行列があるとします。ここで、0は空のセルを表し、1は騎士を表します。騎士は、水平方向に2マス、垂直方向に1マス、または縦に2マス、横に1マス移動することができます(チェス盤の騎士のように)。 2人の騎士がお互いを攻撃しているかどうかを確認する必要があります。 したがって、入力が次のような場合 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 その後、出力はTrueになります これを解決するには、次の手順に従います- row、col:=行列の行数、行列の列数
-
PythonのKプレフィックス
数値numsと整数kのリストがあるとすると、nums [0] + nums [1] + ... +nums[i]≤kである可能性のある最大のiを見つける必要があります。有効なiが存在しない場合は、-1を返します。 したがって、入力がnums =[4、-7、5、2、6]、k =5の場合、出力は3になり、4 +(-7)+ 5+2を追加した場合のインデックスは3になります。 =4、これはk未満です。最後の要素を追加すると、k以上になるため、インデックスは3になります。 これを解決するには、次の手順に従います- 範囲1からnums-1のサイズのiの場合、do nums [i]:=nums [
-
Pythonで最大のギャップ
numsという数字のリストがあるとすると、ソートされたバージョンのnumsで2つの連続する数字の最大の差を見つける必要があります。 したがって、入力が[5、2、3、9、10、11]の場合、5と9の間の最大ギャップは4であるため、出力は4になります。 これを解決するには、次の手順に従います- n:=ソートされたリスト番号 ans:=新しいリスト 範囲0からn-2のサイズのiの場合、実行 ansの最後にn[i+ 1]-n[i]を挿入します 最大値を返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve
-
Pythonで2倍の最大数
番号のリストがあるとします。最大数が2番目に大きい数より2倍以上大きいかどうかを確認する必要があります。たとえば、リストが[3、9、6]のような場合、9は12(2 x 6)より大きくないため、falseが返されます。リストが[6、3、15]の場合、15は12(2 x 6)より大きいため、trueが返されます。 これを解決するには、次の手順に従います- numsのサイズが2未満の場合、 Falseを返す p_max:=nums[0]とnums[1]の最小値 c_max:=nums[0]とnums[1]の最大値 2からnumsのサイズのiの場合は、 p_maxの場合、 c_ma