-
Pythonで連続して厳密に増加するサブリストの長さを見つけるプログラム
numsと呼ばれる数値のリストがあるとすると、リストから1つまたは0の要素を削除できるときに、連続する厳密に増加するサブリストの最大長を見つける必要があります。 したがって、入力がnums =[30、11、12、13、14、15、18、17、32]のような場合、リストから18を削除すると、[11、 12、13、14、15、17、32]これは最も長く、連続していて、厳密に増加するサブリストであり、その長さは7です。 これを解決するために、次の手順に従います- n:=numsのサイズ pre:=サイズnのリストと1で埋める 1からn-1の範囲のiの場合、実行 nums
-
Pythonで特定の文字列文字を含むピザを見つけることができる回数をカウントするプログラム
小文字の文字列sがあるとすると、sに存在する文字を使用して作成できる「ピザ」文字列の数を見つける必要があります。 sの文字は任意の順序で使用できますが、各文字は1回使用できます。 したがって、入力が「ihzapezlzzilaop」のような場合、出力は2になります。 これを解決するには、次の手順に従います- p_freq:=sの「p」の頻度 i_freq:=sの「i」の頻度 z_freq:=sの「z」の頻度 a_freq:=sの「a」の頻度 最小値(p_freq、i_freq、z_freq / 2、およびa_freq)を返します 理解を深めるために、次の実装を見てみましょう-
-
Pythonで2つの異なる要素の最大の製品を見つけるためのプログラム
数字のリストがあるとすると、2つの異なる要素の最大の積を見つける必要があります。 したがって、入力が[5、3、7、4]の場合、出力は35になります。 これを解決するには、次の手順に従います- curr_max:=-inf 範囲0からnums-1のサイズのiの場合、do i +1からnums-1のサイズのjの場合、do curr_maxの場合、 curr_max:=nums [i] * nums [j] return curr_max 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def s
-
Pythonで中央値の絶対差が最小になるように数値のリストを分割するプログラム
numsと呼ばれる数値のリストがあるとすると、それを同じサイズの2つの部分に分割する必要があります。各リストの中央値の絶対差は可能な限り小さく、この差を見つける必要があります。ここでは、nums/2の長さが奇数になることに注意する必要があります。 したがって、入力が[2、10、8、5、4、7]の場合、出力は2になります。これは、[2,5,10]と[4,7,8]のような2つのリストを作成できるためです。 、その場合、中央値は5と7であり、それらの差は2です。 これを解決するには、次の手順に従います- リスト番号を並べ替える m:=nums/2のサイズの商 return | nums [
-
Pythonで2つのソートされたリストをマージして、より大きなソートされたリストを形成するプログラム
ソートされたリストAとBが2つあるとします。それらをマージして、ソートされたリストCを1つだけ作成する必要があります。リストのサイズは異なる場合があります。 たとえば、A=[1,2,4,7]およびB=[1,3,4,5,6,8]とすると、マージされたリストCは[1,1,2,3,4、 4,5,6,7,8] これは再帰を使用して解決します。したがって、関数は次のように機能します- x:=新しいリスト i:=0、j:=0 i <(lst0)のサイズとj <(lst1)のサイズの間、do lst1 [j]の場合、 xの最後にlst1[j]を挿入します j:=j + 1 それ以
-
Pythonで数値を昇順または降順で並べ替える最小コストを見つけるプログラム
numsと呼ばれる数値のリストがあるとすると、リストを任意の順序(昇順または降順)でソートするための最小コストを見つける必要があります。ここでのコストは、要素の古い値と新しい値の差の合計です。 したがって、入力が[2、5、4]の場合、出力は2になります。 これを解決するには、次の手順に従います- temp:=配列番号をコピーします リストの一時を並べ替える c1:=0、c2:=0 n:=numsのサイズ 0からnの範囲のiについては、 nums[i]がtemp[i]と同じでない場合、 c1:=c1 + | nums [i] -temp [i] | nums[i]がt
-
Pythonでの頻度と同じ値を持つリスト内の要素を検索するプログラム
numsという数値のリストがあるとすると、リスト内の頻度がその値と同じである要素があるかどうかを確認する必要があります。 したがって、入力が[2、4、8、10、4、4、4]の場合、出力はTrueになります これを解決するには、次の手順に従います- res:=値ごとの頻度を保存するための新しいマップ resのキーと値のペア(k、v)ごとに、を実行します。 kがvと同じ場合、 Trueを返す Falseを返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve(self, nums):  
-
Pythonで1からNまでのすべての欠落している数字を見つけるプログラム
サイズnのnumsと呼ばれる数値のリストがあり、リスト内のすべての数値が区間[1、n]に存在するとします。一部の要素は、2回表示され、他の要素は1回だけ表示される場合があります。リストにないように、[1、n]からすべての番号を見つける必要があります。昇順でソートされた番号を返す必要があります。線形の時間と一定のスペースを必要とする解決策を見つけようとする必要があります。 したがって、入力が[4、4、2、2、6、6]の場合、出力は[1、3、5]になります。 これを解決するには、次の手順に従います- arr:=サイズnums + 1の配列で、0で埋めます numsの各iについて、 ar
-
Pythonですべての偶数と奇数をそれぞれ昇順と降順で並べ替えるプログラム
numsという数値のリストがあるとすると、次の基準を維持して配列を並べ替える必要があります 偶数は昇順で並べ替えられます 奇数は降順で並べ替えられます 偶数と奇数の相対位置は変更しないでください。 したがって、入力が[9、14、12、91、-4、5]の場合、出力は[91、-4、12、9、14、5]になります。 これを解決するには、次の手順に従います- evens:=nums配列内の偶数項のリスト odds:=nums配列の奇数項のリスト リストを均等に並べ替える even_i:=0、odd_i:=0 0からnumsのサイズの範囲のインデックスの場合は、 nums [index
-
与えられた数がPythonでナルシシスト数であるかどうかをチェックするプログラム
数nがあるとします。 nの桁数の合計から桁数の累乗に等しいかどうかを確認する必要があります。 したがって、入力が9474のような場合、出力は9 ^ 4 + 4 ^ 4 + 7 ^ 4 + 4 ^ 4 =6561 + 256 +2401 + 256=9474としてTrueになります。 これを解決するには、次の手順に従います- s:=nの数字のリスト nがs内のすべてのxのx*(sのサイズ)の合計と同じ場合はtrueを返し、それ以外の場合はfalseを返します 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solv
-
Pythonで範囲内のノード数を見つけるプログラム
BSTがあり、左と右の境界lとrもあるとすると、lとrの間に値が存在するルート内のすべてのノードの数を見つける必要があります。 したがって、入力が次のような場合 l =7、r =13の場合、8、10、12の3つのノードがあるため、出力は3になります。 これを解決するために、次の手順に従います- スタック:=スタックと最初にルートを挿入し、カウント:=0 スタックが空でないときに、実行します node:=スタックの最上位要素、およびポップ要素 ノードがnullでない場合、 l<=ノードのデータ<=rの場合、 count:=count + 1
-
Pythonでお互いを攻撃できないようにn個のルークを配置する方法をいくつか見つけるプログラム
サイズnxnのチェス盤を表す数nがあるとします。お互いに攻撃できないように、n個のルークを配置できる方法の数を見つける必要があります。ここでは、チェス盤の一部のセルが占有されている場合と、セルが占有されていない場合の2つの方法が異なると見なされます。 (ルークが同じ行または同じ列にある場合、ルークは互いに攻撃する可能性があることを私たちは知っています。) したがって、入力が3のような場合、出力は6になります これを解決するには、次の手順に従います- f=nの階乗 fを返す 理解を深めるために、次の実装を見てみましょう- 例 import math class Solution:
-
PythonでN番目のフィボナッチ数を見つけるプログラム
数nがあるとすると、n番目のフィボナッチ項を見つける必要があります。 i番目のフィボナッチ項f(i)=f(i-1)+ f(i-2)がわかっているので、最初の2つの項は0、1です。 したがって、入力が15のような場合、出力は610になります。 これを解決するには、次の手順に従います- 最初:=0、2番目:=1 2からnの範囲のiについては、 temp:=1番目+2番目 最初:=2番目 秒:=一時 2番目に戻る 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve(self, n): &n
-
Pythonで指定された数のビット1の数を見つけるプログラム
数nがあるとすると、その数のバイナリ表現に存在するビット1の数を見つける必要があります。 したがって、入力が12のような場合、出力は2になります これを解決するには、次の手順に従います- count:=0 nがゼロ以外の場合は、 count:=count +(n AND 1) n:=(n / 2)のフロア 返品数 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve(self, n): count = 0 whi
-
Pythonの二分木でk長のパスを見つけるプログラム
一意の値を含む二分木があり、別の値kもあるとすると、ツリー内のkの長さの一意のパスの数を見つける必要があります。パスは、親から子へ、または子から親へのいずれかになります。一部のノードが一方のパスに表示され、もう一方のパスには表示されない場合、2つのパスは異なると見なされます。 したがって、入力が次のような場合 k =3の場合、パスは[12,8,3]、[12,8,10]、[8,12,15]、[3,8,10]であるため、出力は4になります。 これを解決するために、次の手順に従います- 関数dfs()を定義します。これはノードを取ります ノードがnullの場合、 1とk
-
Pythonで1つの一意の文字を含む文字列の総数を見つけるプログラム
小文字の文字列があるとすると、1つの一意の文字を含むサブ文字列の総数を見つける必要があります。 したがって、入力が「xxyy」のような場合、サブストリングが[x、x、xx、y、y、yy] であるため、出力は6になります。 これを解決するには、次の手順に従います- 合計:=0 前の:=空白の文字列 sの各文字cについて、 cが以前と同じでない場合は、 前:=c temp:=1 それ以外の場合、 temp:=temp + 1 合計:=合計+温度 合計を返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution: &nb
-
Pythonで最初のn個の奇数の合計を見つけるプログラム
1つの数nがあるとすると、最初のn個の正の奇数の合計を見つける必要があります。 したがって、入力が7のような場合、出力は[1 + 3 + 5 + 7 + 9 + 11 + 13] =49として49になります。 これを解決するには、次の手順に従います- nが0と同じ場合、 0を返す 合計:=1、カウント:=0、温度:=1 カウント
-
Pythonで奇数桁を含むリスト内の要素の数をカウントするプログラム
numsと呼ばれる正の数のリストがあるとすると、奇数の桁を持つ要素の数を見つける必要があります。 したがって、入力が[1、300、12、10、3、51236、1245]の場合、出力は4になります。 これを解決するには、次の手順に従います- c:=0 0からnumsのサイズの範囲のiの場合は、 s:=numsの桁数[i] sが奇数の場合、 c:=c + 1 return c 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve(self, nums): &n
-
Pythonで新旧のバージョン番号が正しいかどうかを確認するプログラム
古い文字列と新しい文字列があるとします。これら2つは、「major.minor.patch」の形式でソフトウェアパッケージのバージョンを表しています。新しいバージョンが実際に古いバージョンよりも新しいかどうかを確認する必要があります。 したがって、入力がolder =7.2.2、newer =7.3.1の場合、出力はTrueになります これを解決するには、次の手順に従います- older:=古いもののメジャー、マイナー、パッチコードのリスト newer:=新しいのメジャー、マイナー、パッチコードのリスト 古いリストのサイズの範囲内のiについては、実行してください :=古い[i]、n:
-
数値のリストから有効なペアの数をカウントするプログラム。Pythonではペアの合計が奇数です。
正の数numsのリストがあるとすると、有効なインデックスのペア(i、j)の数を見つける必要があります。ここで、i