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

Pythonを使用してターゲット要素までの最小距離を見つけるプログラム


配列numsと2つの異なる値target(targetはnumsで存在する必要があります)があり、開始するとします。nums[i]=targetおよび|i--start|となるようなインデックスiを見つける必要があります。最小です。 | i--start|を返す必要があります。

したがって、入力がnums =[3,4,5,6,7] target =7 start =2のようである場合、targetと一致する値は1つ、つまりnums [4]しかないため、出力は2になります。 、したがってi=4です。|4-2| =2。

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

  • 最小:=無限大

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

    • nums [i]がターゲットと同じ場合、

      • if | i --start | <最小、次に

        • 最小:=|i-開始|

  • 最小値を返す

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

from math import inf
def solve(nums, target, start):
   minimum = inf
   for i in range(len(nums)):
      if nums[i] == target:
         if abs(i - start) < minimum:
            minimum = abs(i - start)
   return minimum
nums = [3,4,5,6,7]
target = 7
start = 2
print(solve(nums, target, start))

入力

[3,4,5,6,7], 7, 2

出力

2

  1. Pythonを使用してバイナリグリッドを配置するための最小スワップを見つけるプログラム

    nxnのバイナリ行列があるとします。 1つのステップで、隣接する2つの行を選択し、それらを入れ替えるような操作を実行できます。行列の主対角線より上のすべてのノードが0になるように、必要な最小スワップの数をカウントする必要があります。そのような解決策がない場合は、-1を返します。 したがって、入力が次のような場合 0 1 0 0 1 1 1 0 0 -であるため、出力は2になります。 これを解決するには、次の手順に従います。 n:=行列の行数 m:=サイズnの配列を作成し、nで埋めます 0からn-1の範囲のiの

  2. 配列内の最大の要素を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、配列の最大要素を計算する必要があります。 ここでは、ループ全体をトラバースして最大の要素を計算し、要素を取得するブルートフォースアプローチを使用します。 以下の実装を観察できます。 例 # largest function def largest(arr,n):    #maximum element    max = arr[0]    # traverse the whole loop    for