Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで指定された長さの最大のサブ配列を見つけるプログラム


さまざまな整数値と指定された長さkを含む配列があるとします。指定された長さの配列から最大のサブ配列を見つける必要があります。 subarray1[i]≠subarry2[i]およびsubarray1[i]>subarry2 [i]の場合、サブアレイは別のサブアレイよりも大きいと言われます。

したがって、入力がnums =[5、3、7、9]、k =2の場合、出力は[7、9]になります。

これを解決するには、次の手順に従います-

  • start:=numsのサイズ-k
  • max_element:=nums [start]
  • max_index:=start
  • 開始>=0のときに、実行
    • nums [start]> max_elementがゼロ以外の場合、
      • max_element:=nums [start]
      • max_index:=start
    • return nums [from index max_index to max_index + k]
  • return nums [from index max_index to max_index + k]

理解を深めるために、次の実装を見てみましょう-

def solve(nums, k):
   start = len(nums) - k
   max_element = nums[start]
   max_index = start

   while start >= 0:
      if nums[start] > max_element:
         max_element = nums[start]
         max_index = start

      start -= 1

   return nums[max_index:max_index + k]

print(solve([5, 3, 7, 9], 2))

入力

[5, 3, 7, 9], 2

出力

[7, 9]

  1. グラフがPythonのすべての人によってトラバース可能かどうかを確認するプログラム

    0からn-1までの番号が付けられたn個の頂点を含むグラフが与えられたとします。グラフは無向であり、各エッジには重みがあります。グラフには3種類の重みを設定でき、各重みは特定のタスクを示します。グラフをトラバースできるのは、ジャックとケーシーの2人です。エッジの重みが1の場合、ジャックはグラフをトラバースできます。重みが2の場合、ケーシーはグラフをトラバースできます。エッジの重みが3の場合、両方がグラフをトラバースできます。グラフを両方でトラバース可能にするために必要なエッジをすべて削除する必要があります。ジャックとケーシー。グラフをトラバース可能にするために削除するエッジの数を返します。トラバ

  2. 指定された文字列のバイナリ表現で最大の連続する1の長さを見つけるPythonプログラム。

    数を指定して、バイナリ表現で最も長い連続する1の長さを見つけます。 例 Input: n = 15 Output: 4 The binary representation of 14 is 1111. アルゴリズム Step 1: input the number. Step 2: use one counter variable c=0. Step 3: Count the number of iterations to reach i = 0. Step 4: This operation reduces length of every sequence of 1s by one.