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

3つの固有の要素を見つけることができるかどうかを確認するプログラムosesumがkと同じかPythonでないか


numsと呼ばれる数値のリストと別の値kがあるとすると、リスト内で合計がkである3つの一意の要素を見つけることができるかどうかを確認する必要があります。

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

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

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

  • l:=0、r:=numsのサイズ-1

  • l

    • t:=k − nums [l] − nums [r]

    • nums [r − 1]

      • l:=l + 1

      • ループから出てきます

    • l + 1からrの範囲のmの場合、実行

      • nums [m]> tの場合、

        • r:=r − 1

        • ループから出てきます

      • nums [m]がtと同じ場合、

        • Trueを返す

  • Falseを返す

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

class Solution:
   def solve(self, nums, k):
      nums.sort()
      l, r = 0, len(nums) − 1
      while l < r − 1:
         t = k − nums[l] − nums[r]
         if nums[r − 1] < t:
            l += 1
            continue
         for m in range(l + 1, r):
            if nums[m] > t:
               r −= 1
               break
            if nums[m] == t:
               return True
      return False
ob1 = Solution()
nums = [11, 4, 6, 10, 5, 1]
k = 20
print(ob1.solve(nums, k))

入力

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

出力

True

  1. Pythonプログラムのリストで要素の合計を検索する

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −反復可能なリストが与えられたので、リストの合計を計算する必要があります ここでは、以下で説明する3つのアプローチについて説明します forループの使用 例 # sum total = 0 # creating a list list1 = [11, 22,33,44,55,66] # iterating over the list for ele in range(0, len(list1)):    total = total + list1[ele] # printing tota

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

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