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

ポイントが存在せず、Pythonで最も広い2つのポイント間の垂直領域を見つけるプログラム


(x、y)としてn個の点が与えられたと仮定します。垂直領域は、y軸に沿って無限に拡張される領域です。他のポイントがエリア内になく、最も広いポイントがないように、2つのポイント間の垂直エリアを見つける必要があります。

したがって、入力がpts =[[10,9]、[11,11]、[9,6]、[11,9]]の場合、出力は1になります。

ポイントが存在せず、Pythonで最も広い2つのポイント間の垂直領域を見つけるプログラム

赤と青の領域が最適で、内部にポイントはありません。

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

  • リストを並べ替えるpts

  • 1からポイントのサイズまでの範囲のiの場合、実行します

    • (pts [i、0] --pts [i-1、0])

      の最大値を返します

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

def solve(pts):
   pts.sort()
   return max(pts[i][0] - pts[i - 1][0] for i in range(1, len(pts)))
print(solve([[10,9],[11,11],[9,6],[11,9]]))

入力

[[10,9],[11,11],[9,6],[11,9]]

出力

1

  1. Pythonのグラフでクリティカルエッジと疑似クリティカルエッジを見つけるプログラム

    0からn-1までの番号が付けられたn個の頂点を含むグラフが与えられたとします。グラフは無向であり、各エッジには重みがあります。したがって、グラフが与えられた場合、グラフMSTのクリティカルエッジと疑似クリティカルエッジを見つける必要があります。エッジを削除するとMSTの重みが増加する場合、そのエッジはクリティカルエッジと呼ばれます。疑似クリティカルエッジは、すべてではなく、すべてのグラフMSTに表示できるエッジです。グラフを入力として与えられたエッジのインデックスを見つけます。 したがって、入力が次のような場合 頂点の数が5の場合、出力は[[]、[0、1、2、3、4]]になります。指

  2. いいえが2の累乗であるかどうかを調べるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 数nが与えられた場合、与えられた数が2の累乗であるかどうかを確認する必要があります。 アプローチ 入力数を2で割り続けます。つまり、=n/2を繰り返します。 各反復で、n%2がゼロ以外になり、nが1でない場合、nは2の累乗ではないことを確認します。 nが1になると、2の累乗になります。 以下の実装を見てみましょう- 例 def isPowerOfTwo(n):    if (n == 0):       retur