Python

 Computer >> コンピューター >  >> プログラミング >> Python
  1. Pythonでリンクリストをジグザグ二分木に変換するプログラム

    単一リンクリストがあるとすると、次のルールを使用してそれをバイナリツリーパスに変換する必要があります- リンクリストの先頭はルートです。 後続の各ノードは、値が小さい場合は親の左の子になり、それ以外の場合は右の子になります。 したがって、入力が[2,1,3,4,0,5]の場合、出力はになります。 これを解決するには、次の手順に従います- 関数solve()を定義します。これはノードを取ります ノードがnullの場合、 nullを返す root:=ノードの値と同じ値のツリーノードを作成します 次のノードがnullでない場合、 ノードの次の値<ノードの値の場合、 ルートの左側

  2. Pythonで2つの与えられたリンクリストの結合を見つけるプログラム

    2つのソートされたリンクリストL1とL2があるとすると、2つの指定されたリストの和集合である新しいソートされたリンクリストを返す必要があります。 したがって、入力がL1 =[10,20,30,40,50,60,70] L2 =[10,30,50,80,90]の場合、出力は[10、20、30 40、50、60、70、80、90、] これを解決するには、次の手順に従います- 関数solve()を定義します。これにはL1、L2が必要です L1が空の場合、 L2を返す L2が空の場合、 L1を返す L1の値

  3. Pythonでビットの1つのペアを交換した後、最長の1を見つけるプログラム

    バイナリ文字列sがあるとします。文字列内の最大1組の文字を入れ替えることができる場合は、連続する最長の1の部分文字列の結果の長さを見つける必要があります。 したがって、入力がs =1111011111の場合、s[4]とs[9]を入れ替えて9つの連続した1を取得できるため、出力は9になります。 これを解決するには、次の手順に従います- l:=0、cnt:=0、ans:=0 0からsのサイズの範囲のrについては、 cnt:=cnt +(s[r]が0と同じ場合は1、それ以外の場合は0) 1の場合、 cnt:=cnt-(s [l]が「0」の場合は1、それ以外の場合は0) l:=l

  4. Pythonの特定のリストから最長のフィボナッチサブシーケンスの長さを見つけるプログラム

    1に対してA[i]=A [i-1] + A [i-2]となるような最長のサブシーケンスA(最小長3)の長さを見つける必要があります。 したがって、入力がnums =[1、2、3、4、5、6、7、8、9、10、11、12、13、14]のような場合、出力は6になります。 [1、2、3、5、8、13]。 これを解決するには、次の手順に従います- A:=nums n:=Aのサイズ maxLen:=0 S:=Aからの新しいセット 0からnの範囲のiについては、 i + 1からnの範囲のjについては、 x:=A [j] y:=A [i] + A [j] 長さ:=2 yがS

  5. Pythonの間隔のリストから最長の間隔の長さを見つけるプログラム

    各間隔が[start、end]の形式である間隔のリストがあるとします。重なり合う間隔をいくつでもマージして、作成できる最長の間隔を見つける必要があります。 したがって、入力が[[1、6]、[4、9]、[5、6]、[11、14]、[16、20]]の場合、マージ後の出力は9になります。長さ9の区間[1、9]があります。 これを解決するには、次の手順に従います- リスト間隔を並べ替える union:=間隔リストの最初の間隔 best:=union [end] --union [start] + 1 最初の時刻を除く間隔で開始時刻sと終了時刻eごとに、を実行します。 s <=union

  6. Pythonの数値リストから最長の符号交互サブシーケンスの長さを見つけるプログラム

    numsと呼ばれる数値のリストがあるとすると、連続する各数値の符号を反転させる最長のサブシーケンスの長さを見つける必要があります。 したがって、入力がnums =[1、3、-6、4、-3]の場合、[1、-6、4、-3]を選択できるため、出力は4になります。 これを解決するには、次の手順に従います- pos:=0、neg:=0 numsのnごとに、 n <0の場合、 neg:=pos + 1 それ以外の場合、 pos:=neg + 1 posとnegの最大値を返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution:  

  7. Pythonでサブリストを厳密に増加させてから減少させる最長の長さを見つけるプログラム

    numsという番号のリストがあるとします。 (最小の長さ3)の値が厳密に増加してから減少するように、最長のサブリストの長さを見つける必要があります。 したがって、入力がnums =[7、1、3、5、2、0]のような場合、サブリストは[2、4、6、3、1]が厳密に増加してから減少するため、出力は5になります。 。 これを解決するには、次の手順に従います- i:=0、n:=aのサイズ、res:=-infinity i

  8. Pythonでkビットを反転して1の最長セットの長さを見つけるプログラム

    バイナリリストがあるとすると、ここでは1と0のみが使用可能であり、別の数値kもあります。最大でk0を1に設定できます。すべての1を含む、最長のサブリストの長さを見つける必要があります。 したがって、入力がnums =[0、1、1、0、0、1、1] k =2の場合、2つの中央の0を1に設定すると、リストは次のようになります。 [0、1、1、1、1、1、1]。 これを解決するには、次の手順に従います- ゼロ:=0、ans:=0、j:=0 各インデックスiおよびnumsの値nについて、実行します ゼロ:=ゼロ+(nが0と同じ場合は1、それ以外の場合は0) kの場合、do zeros:=z

  9. Pythonで最小値と最大値の差がkよりも小さい最長のサブリストの長さを見つけるプログラム

    numsと呼ばれる数値のリストと別の値kがあるとすると、最大要素と最小要素の絶対差が≤kである最長のサブリストの長さを見つける必要があります。 したがって、入力がnums =[2、4、6、10] k =4の場合、出力は3になります。ここで、pick [2、4、6]を選択できるため、絶対差は4です。 これを解決するには、次の手順に従います- 2つの両端キューmaxdを作成します。 i:=0、res:=1 Aの各インデックスjと値aについて、実行します maxdの最後の要素である場合、 maxdから最後の要素を削除する 心は0ではなく、<心の最後の要素ですが、 心から最後の要素を

  10. Pythonで文字数がk以上の最長の部分文字列の長さを見つけるプログラム

    各文字がソートされた文字列sがあり、数値kもあるとすると、すべての文字が少なくともk回出現するように、最長の部分文字列の長さを見つける必要があります。 したがって、入力がs =aabccddeeffghij k =2の場合、出力は8になります。これは、ここでの最長の部分文字列が ccddeeffであり、すべての文字が少なくとも2回出現するためです。 これを解決するには、次の手順に従います- 関数rc()を定義します。これには時間がかかります c:=すべての文字とその出現を含むマップ acc:=新しいリスト ans:=0 有効:=真 lstのxごとに、 c [x]

  11. PythonのLookandSayシーケンスでn番目の用語を見つけるプログラム

    「LookandSay」シーケンスでn番目の項を生成する必要がある数nがあるとします。これは、いくつかの用語が以下のようなシーケンスです- 1 11 21 1211 111221 文字列は次のように読み取られます 1(1) 11(One 1)前の1を読んで、「One1」と言います 21(Two 1)前の11を読んで、「Two1」と言ってください 1211(One 2 one 1)前の21を読んで、「One 2one1」と言います 111221(One 1 1 2 2 2 1)前の1211を読んで、「One 1 1 221」と言います 数n、1 <=n

  12. Pythonのネストされたリストの重みの合計II

    整数のネストされたリストが与えられた場合、それらの深さで重み付けされたリスト内のすべての整数の合計を返します。各要素は整数またはリストのいずれかです。その要素は整数または他のリストでもかまいません。重みが根から葉へと増加している前の質問とは異なり、重みは下から上に定義されます。つまり、リーフレベルの整数の重みは1で、ルートレベルの整数の重みは最大です。 したがって、入力が[[1,1]、2、[1,1]]の場合、出力は8になり、深さ1に4つの1があり、深さ2に1つの2があります。 これを解決するには、次の手順に従います- 関数depthSumInverse()を定義します。これにはnes

  13. Pythonで指定されたターゲットよりも大きいペアの最小合計を見つけるプログラム

    numsと呼ばれる数値のリストと別の値のターゲットがあるとします。目標よりも大きい数のペアの最小の合計を見つける必要があります。 したがって、入力がnums =[2、4、6、10、14] target =10のような場合、2と10を選択すると、出力は12になります これを解決するには、次の手順に従います- リスト番号を並べ替える n:=numsのサイズ 回答:=10 ^ 10 i:=0、j:=n-1 i

  14. Pythonで多数決した候補者のIDを見つけるプログラム

    n個の値を含むnumsと呼ばれる数値のリストがあるとします。ここで、各数値は候補者への投票を表します。投票数がfloor(n / 2)を超える候補者のIDを見つける必要があり、多数決がない場合は-1を返します。 したがって、入力がnums =[6、6、2、2、3、3、3、3、3]の場合、出力は3になります。 これを解決するには、次の手順に従います- l:=numsのサイズ count:=個々の番号とその出現を含むマップ カウントの各数iと出現jについて、実行します (l / 2)の場合、 私を返す 戻り値-1 理解を深めるために、次の実装を見てみましょう- 例 class

  15. Pythonでターゲットに到達するためのコインの組み合わせの数を見つけるプログラム

    コインのリストと別の値の金額があるとすると、その合計から金額までの組み合わせの数を見つける必要があります。答えが非常に大きい場合は、結果を10 ^ 9+7で変更します。 したがって、入力がcoins =[2、5] amount =10の場合、これらの組み合わせを作成できるため、出力は2になります-[2、2、2、2、2]、[5、5] これを解決するには、次の手順に従います- m:=10 ^ 9 + 7 dp:=金額+1と同じサイズのリストで、0で埋めます dp [0]:=1 コインのdごとに、 1からdpのサイズまでの範囲のiについては、 =0の場合、 dp [i]:=d

  16. 各セルがPythonで最も近い0からマンハッタン距離を保持する行列を生成するプログラム

    バイナリ行列があるとします。同じ行列を見つける必要がありますが、各セルの値は、最も近い0までのマンハッタン距離になります。行列には少なくとも1つの0が存在すると想定できます。 したがって、入力が次のような場合 1 0 1 1 0 1 1 1 0 その場合、出力は次のようになります 1 0 1 1 0 1 2 1 0 左下のセルだけが2から最も近い0までの距離を持っているからです。 これを解決するには、次の手順に従います- m:=行列の行サイズ、n:=行列の列サイズ 0か

  17. Pythonで指定された行列からn番目に小さい数を見つけるプログラム

    各行と列が降順ではない順序で並べ替えられている2Dマトリックスがあるとすると、n番目に小さい数を見つける必要があります。 したがって、入力が次のような場合 2 4 30 3 4 31 6 6 32 n =4の場合、出力は6になります。 これを解決するには、次の手順に従います- lst:=新しいリスト 行列の各行iについて、 iの各セルjについて、 lstの最後にjを挿入 リストを最初に並べ替える return lst [n] 理解を深めるために、次の実装を見てみましょう- 例 class Solution: &

  18. Pythonで指定されたマトリックス内または非中のターゲット値を見つけるプログラム

    各行と列が降順ではない順序で並べ替えられている2Dマトリックスがあるとすると、指定されたターゲットがその中に存在するかどうかを確認する必要があります。 したがって、入力が次のような場合 2 4 30 3 4 31 6 6 32 そしてtarget=31の場合、出力はTrueになります これを解決するには、次の手順に従います- col:=マトリックスの列サイズ-1 行列の0から行サイズの範囲のiの場合、 =0の場合、do col:=col-1 matrix [i、col]がターゲットと同じ場合、 Trueを返す

  19. Pythonで数値を削除して最大の加法スコアを見つけるプログラム

    numsという番号のリストがあるとします。数値を選択し、それを削除して、その数値とそれに隣接する2つの数値の合計でスコアを増やすことができる操作を考えてみましょう。リストの最初または最後の番号を選択しない限り、この操作を何度でも実行できる場合。可能な最大スコアを見つける必要があります。 したがって、入力がnums =[2、3、4、5、6]の場合、出力は39になり、5を選択できるため、合計は(4 + 5 + 6)=15になり、配列は[2、3、4、6]になり、次に4を選択すると、合計は(3 + 4 + 6)=13になり、配列は[2、3、6]になり、3を選択すると、合計は(2 + 3)になります。

  20. Pythonの末尾からK個の数値を削除して最大合計を見つけるプログラム

    numsと呼ばれる数値のリストと別の値kがあるとします。正確にk回ポップする必要がある場合、削除できる要素の最大合計を見つける必要があります。各ポップは左端または右端から行うことができます。 したがって、入力がnums =[2、4、5、3、1] k =2の場合、2と4を削除できるため、出力は6になります。 これを解決するには、次の手順に従います- window:=インデックス0からk-1までのすべての数値の合計 ans:=window 1からkの範囲のiについては、 window:=window --nums [k --i] window:=window + nums [-

Total 8994 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:190/450  20-コンピューター/Page Goto:1 184 185 186 187 188 189 190 191 192 193 194 195 196