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

Pythonで値のペア間の最大距離を見つけるプログラム


2つの配列(非成長)nums1とnums2があるとします。 0 <=i

したがって、入力がnums1 =[60,40,15,10,5]、nums2 =[115,30,25,15,10]の場合、ここで有効なペアは(0,0)であるため、出力は1になります。 )、(2,2)、(2,3)、(3,3)、(3,4)、および(4,4)、ここでは、ペア(2,3)またはペア(3、 4)

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

  • nums1の最後の要素>nums2の最初のeoelementの場合、

    • 0を返す

  • i:=0、j:=0およびmax_dist:=0

  • i

    • j

      • max_dist:=max_distと(j-i)の最大値

      • j:=j + 1

    • それ以外の場合

      • j:=j + 1

      • i:=i + 1

  • max_distを返す

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

def solve(nums1, nums2):
   if nums1[len(nums1)-1] > nums2[0]:
      return 0

   i = j = max_dist = 0
   while i < len(nums1):
      if j < len(nums2) and nums1[i] <= nums2[j]:
         max_dist = max(max_dist, j-i)
         j += 1

      else:
         j += 1
         i += 1

   return max_dist

nums1 = [60,40,15,10,5]
nums2 = [115,30,25,15,10]
print(solve(nums1, nums2))

入力

[60,40,15,10,5], [115,30,25,15,10]

出力

1

  1. Pythonで空席と空席の間の最大距離を見つけるプログラム

    シートと呼ばれる0と1のみのリストがあるとします。ここで、seats[i]は座席を表します。 1の場合は占有され、それ以外の場合は解放されます。少なくとも1つのフリーシートと少なくとも1つの占有シートがあり、フリーシートから最も近い占有シートまでの最大距離を見つける必要があります。 したがって、入力が座席=[1、0、1、0、0、0、1]の場合、座席の座席[4]を占有できるため、出力は2になり、距離は2になります。 これを解決するには、次の手順に従います- res:=0 最後:=-1 n:=シートのサイズ 0からn-1の範囲のiの場合、実行 Seats [i

  2. Pythonで最大の建物の高さを見つけるプログラム

    値nと、制限と呼ばれるペアの別のリストがあるとします。都市にn棟の新しい建物を建てたいと思っています。ただし、制限はほとんどありません。私たちは一列に建てることができ、建物には1からnまでのラベルが付けられています。制限には2つのパラメーターがあるため、restrictions [i] =(id_i、max_height_i)は、id_iの高さがmax_height_i以下でなければならないことを示します。新しい建物の高さに関する市の制限は次のとおりです- 各建物の高さは0または正の値である必要があります。 最初の建物の高さは0でなければなりません。 隣接する2つの建物の高さ