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

カップと棚のすっきりとした配置がPythonでできるかどうかを調べます


配列pに3種類のカップがあり、配列qとmの棚に受け皿があるとすると、カップと棚をきちんと配置できるかどうかを確認する必要があります。

これらの条件に従えば、カップとソーサーの配置はきれいになると言えます。-1。カップとソーサーの両方を収納できる棚はありません。 2.自己には最大5つのカップを含めることができます。 3.自己には最大10個の受け皿を含めることができます。

したがって、入力がp =[4、3、7] q =[5、9、10] m =11の場合、カップの総数=14、3つの棚、合計の受け皿が必要になるため、出力はTrueになります。 =24、3つの棚が必要です。したがって、必要な棚の総数=3 + 3 =6であり、指定された棚の数mよりも少なくなります。

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

  • sum_p:=0、sum_q:=0

  • 0からpのサイズの範囲のiの場合、実行

    • sum_p:=sum_p + p [i]

  • 0からqのサイズの範囲のiの場合、実行

    • sum_q:=sum_q + q [i]

  • m_p:=(sum_p + 4)/ 5

  • m_q:=(sum_q + 9)/ 10

  • m_p + m_q <=mの場合、

    • Trueを返す

  • それ以外の場合

    • Falseを返す

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

def is_valid(p, q, m):
   sum_p = 0
   sum_q = 0
   for i in range(0, len(p)):
      sum_p += p[i]
   for i in range(0,len(q)):
      sum_q += q[i]
   m_p = (sum_p + 5 - 1) / 5
   m_q = (sum_q + 10 - 1) / 10
   if(m_p + m_q <= m):
      return True
   else:
      return False
p = [4, 3, 7]
q = [5, 9, 10]
m = 11

print(is_valid(p ,q ,m))

入力

[4, 3, 7], [5, 9, 10], 11

出力

True

  1. PythonでO(n)時間とO(1)空間でBSTの中央値を見つける

    二分探索木(BST)があるとすると、その中央値を見つける必要があります。偶数のノードの場合、中央値=((n / 2番目のノード+(n + 1)/ 2番目のノード)/ 2奇数のノードの場合、中央値=(n + 1)/2番目のノードです。 したがって、入力が次のような場合 その場合、出力は7になります これを解決するには、次の手順に従います- rootがNoneと同じ場合、 0を返す node_count:=ツリー内のノードの数 count_curr:=0 現在:=ルート currentがnullでない場合は、実行してください curren

  2. PythonでOpenCVを使用して輪郭を検索して描画する

    画像分析の目的で、Opencv(Open Source Computer Vision Library)pythonライブラリを使用します。 opencvのインストール後にインポートする必要のあるライブラリ名はcv2です。 以下の例では、画像ファイルに存在する輪郭を見つけます。輪郭は、画像に存在する形状を識別するのに役立ちます。等高線は、同じ強度を持つ画像の境界に沿ったすべての点を結ぶ線として定義されます。 OPenCVのfindContours関数は、輪郭を識別するのに役立ちます。同様に、drawContours関数は、輪郭を描画するのに役立ちます。以下は両方の構文です。 構文 cv.Fi