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

Pythonのターゲットよりも小さい2つの数値の合計を見つけるプログラム


numsと呼ばれる数値のリストがあり、ターゲット値もあるとすると、合計が最大(target-1)であるnumsの数値の最大ペアの合計を見つける必要があります。

したがって、入力がnums =[8、3、4、9、2] target =8の場合、8未満の数値の最大ペアの合計は4 + 3 =7であるため、出力は7になります。

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

  • リスト番号を並べ替える
  • p1:=0
  • p2:=numsのサイズ-1
  • m:=-inf
  • p1
  • nums [p1] + nums [p2]
  • m:=最大mおよび(nums [p1] + nums [p2])
  • p1:=p1 + 1
  • それ以外の場合、
    • p2:=p2-1
  • return m
  • 理解を深めるために、次の実装を見てみましょう-

    import math
    def solve(nums, target):
       nums.sort()
       p1 = 0
       p2 = len(nums) - 1
       m = -math.inf
       while p1 < p2:
          if nums[p1] + nums[p2] < target:
             m = max(m, nums[p1] + nums[p2])
             p1 += 1
          else:
             p2 -= 1
       return m
    
    nums = [8, 3, 4, 9, 2]
    target = 8
    print(solve(nums, target))

    入力

    [8, 3, 4, 9, 2], 8

    出力

    7

    1. Pythonプログラムで配列の合計を見つける

      この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列の合計を計算するために必要な配列が与えられます。 合計を取得するために各インデックスで配列と要素全体をトラバースするブルートフォースアプローチについては、以下で説明します。合計を取得するための各インデックスについては、以下で説明します。 例 # sum function def sum_(arr,n):    # using built-in function    return(sum(arr)) # main arr = [11,22,33,44,55,66

    2. 配列の合計を見つけるPythonプログラム

      この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '