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

合計がkと同じかPythonではない4つの要素を見つけることができるかどうかを確認するプログラム


numsと呼ばれる数値のリストと値kがあるとすると、リストに合計kになる4つの一意の要素があるかどうかを確認する必要があります。

したがって、入力がnums =[11、4、6、10、5、1] k =25のような場合、合計が25である[4、6、10、5]があるため、出力はTrueになります。

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

  • リスト番号を並べ替える

  • n:=numsのサイズ

  • 0からn− 4の範囲のiの場合、実行

    • i +1からn− 3の範囲のjの場合、実行

      • l:=j + 1、h:=nums − 1

        のサイズ
        • l

          • summ:=nums [i] + nums [j] + nums [l] + nums [h]

          • summがkと同じ場合、

            • Trueを返す

          • それ以外の場合、合計が

            • l:=l + 1

          • それ以外の場合

            • h:=h − 1

  • Falseを返す

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

class Solution:
   def solve(self, nums, k):
      nums.sort()
      n = len(nums)
      for i in range(n - 3):
         for j in range(i + 1, n - 2):
            l, h = j + 1, len(nums) - 1
            while l < h:
               summ = nums[i] + nums[j] + nums[l] + nums[h]
               if summ == k:
                  return True
               elif summ < k:
                  l += 1
               else:
                  h −= 1
         return False
ob1 = Solution()
nums = [11, 4, 6, 10, 5, 1]
k = 25
print(ob1.solve(nums, k))

入力

[11, 4, 6, 10, 5, 1], 25

出力

True

  1. 数値をチェックするプログラムは、Pythonでは異なる階乗数値の合計として記述できます。

    正の数nがあるとすると、nが一意の正の階乗数の合計として記述できるかどうかを確認する必要があります。 したがって、入力がn =144のような場合、出力は4のようにTrueになります。 + 5! =24 + 120 =144 これを解決するには、次の手順に従います- 事実:=1 res:=新しいリスト x:=2 事実<=n、実行 resの最後にファクトを挿入 ファクト:=ファクト* x x:=x + 1 res -1から0の範囲サイズのiの場合、1ずつ減らします。 =res [i]の場合、 n:=n --res [i]

  2. リスト内の要素の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力としてリストが与えられた場合、与えられたリストの合計を計算する必要があります。 ここでは、考慮すべき2つのアプローチがあります。つまり、組み込み関数を使用する方法と、ブルートフォースアプローチを使用する方法です。 アプローチ1-組み込み関数の使用 例 # main arr = [1,2,3,4,5] ans = sum(arr) print ('Sum of the array is ',ans) 出力 15 すべての変数と関数はグローバルスコープで宣言されて