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

Pythonでnums[i]+ nums [j] +(i -j)が最大化されるペア(i、j)を見つけるプログラム?


numsという数のリストがあるとすると、i

したがって、入力がnums =[6、6、2、2、2、8]の場合、出力は11になり、2つを選択した場合のように6、スコアは6 + 6 + 0-1=11になります。

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

  • 大きい:=nums [0]

  • マキシ:=0

  • 1からnumsのサイズの範囲のiの場合、実行します

    • 大:=大-1

    • maxi:=最大値+nums[i]およびmaxi

    • large:=largeとnumsの最大値[i]

  • マキシを返す

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

class Solution:
   def solve(self, nums):
      large = nums[0]

      maxi = 0
      for i in range(1, len(nums)):
         large -= 1
         maxi = max(large + nums[i], maxi)
         large = max(large, nums[i])

      return maxi

ob = Solution()
nums = [6, 6, 2, 2, 2, 8]
print(ob.solve(nums))

入力

[6, 6, 2, 2, 2, 8]

出力

11

  1. Pythonでポリゴンの周囲を見つけるプログラム

    順序付けられたポイントのリストが2D平面上の単純なポリゴンエンドポイントを表すとします。このポリゴンの周囲を見つける必要があります。 したがって、入力がpoints =[(0、0)、(0,5)、(3、5)、(3,0)]のような場合、出力は16になります。 2つの辺の長さは3で、2つの辺の長さは5なので、2 * 5 + 2 * 3=16です。 これを解決するには、次の手順に従います- 関数getInfo()を定義します。これにはx1、y1、x2、y2が必要です ユークリッド距離である((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))の平方根を返します (x1、y1)

  2. Pythonのグリッドボックスのどこにボールが着地するかを見つけるプログラム

    m x nグリッドボックスが与えられたとします。各セルには、右上から左下、または左上から右下のいずれかに配置されたボードがあります。上のセルからボールがボックスに入れられ、そのボールがボックスの下部に到達するかどうかを確認する必要があります。グリッドはマトリックスとして与えられます。セルに1のマークが付いている場合、対角線上のボードは左上から右下に広がります。 -1とマークされている場合は、右上隅から左下隅にまたがっています。 n個のボールが箱に入れられた場合、底に到達するボールの数を調べる必要があります。 3x3グリッドボックスの例。 したがって、入力がmat =のような場合