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

Pythonで合計がkの倍数である少なくとも2のサイズのサブリストを見つけるプログラム


numsと呼ばれる非負の数と別の正の値kのリストがあるとします。合計がkの倍数である少なくとも2の長さのサブリストがあるかどうかを確認する必要があります。

したがって、入力がnums =[12、6、3、4] k =5のような場合、サブリストは[12、3]の合計が15になり、5で割り切れるので、出力はTrueになります。

>

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

  • 合計:=0
  • m:=新しい地図
  • m [0]:=-1
  • 0からnumsのサイズの範囲のiの場合は、
    • sum:=sum + nums [i]
    • sum:=sum mod k
    • 合計がmに存在する場合、
      • if i --m [sum]> =2、then
        • Trueを返す
    • それ以外の場合、
      • m [sum]:=i
  • Falseを返す

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

class Solution:
   def solve(self, nums, k):
      sum = 0
      m = {}
      m[0] = -1
      for i in range(0, len(nums)):
         sum += nums[i]
         sum %= k
         if sum in m:
            if i - m[sum] >= 2:
               return True
         else:
            m[sum] = i
      return False
ob = Solution()
nums = [12, 6, 3, 4]
k = 5
print(ob.solve(nums, k))

入力

[12, 6, 3, 4], 5

出力

True

  1. リストの累積合計を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが与えられたので、累積合計でリストを作成する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # cumulative sum def Cumulative(l):    new = []    cumsum = 0    for element in l:       cumsum += element       new.append(cumsum) &

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

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