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

Pythonで指定されたターゲットよりも大きいペアの最小合計を見つけるプログラム


numsと呼ばれる数値のリストと別の値のターゲットがあるとします。目標よりも大きい数のペアの最小の合計を見つける必要があります。

したがって、入力がnums =[2、4、6、10、14] target =10のような場合、2と10を選択すると、出力は12になります

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

  • リスト番号を並べ替える
  • n:=numsのサイズ
  • 回答:=10 ^ 10
  • i:=0、j:=n-1
  • i
  • nums [i] + nums [j]>ターゲットの場合、
    • answer:=最小の回答と(nums [i] + nums [j])
    • j:=j-1
  • それ以外の場合、
    • i:=i + 1
  • 回答を返す
  • 理解を深めるために、次の実装を見てみましょう-

    class Solution:
       def solve(self, nums, target): nums.sort()
          n = len(nums)
          answer = 10 ** 10
          i, j = 0, n - 1
          while i < j:
             if nums[i] + nums[j] > target:
                answer = min(answer, nums[i] + nums[j])
                j -= 1
             else:
                i += 1
          return answer
    ob = Solution()
    nums = [2, 4, 6, 10, 14]
    target = 10
    print(ob.solve(nums, target))

    入力

    [2, 4, 6, 10, 14], 10

    出力

    12

    1. 合計がPythonで与えられる少数の数の積を見つけるプログラム

      数nがあり、それらの合計がnに等しくなるように、2つ以上の数を見つける必要があり、これらの数の積が最大化されると、積を見つける必要があります。 したがって、入力がn =12の場合、出力は81になり、3 + 3 + 3 + 3=12および3*3 * 3 * 3=81となります。 これを解決するには、次の手順に従います- 関数dp()を定義します。これにはnかかります nが0と同じ場合、 1を返す ans:=0 1からn+1の範囲のiの場合、実行 ans:=ansの最大値と(i * dp(n − i)) ansを返す メインの方法から、

    2. Pythonでターゲットよりも大きい最小の文字を見つける

      ソートされた文字の文字のリストがあるとします。これには小文字のみが含まれています。ターゲット文字tがあります。リスト内で、指定されたターゲットよりも大きい最小の要素を見つける必要があります。 そして、文字も回ります。したがって、ターゲットがt =zで文字=[a、b]の場合、答えはaです。 したがって、入力が[c、 f、 j]、t =aの場合、出力はcになります。 これを解決するには、次の手順に従います- l:=0 r:=文字のサイズ-1 l <=rの場合、do mid:=(l + r)/2整数として がターゲットの場合、 r:=mid -1 それ以外の場合、 l