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