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を返す
- if i --m [sum]> =2、then
- それ以外の場合、
- 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
-
リストの累積合計を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが与えられたので、累積合計でリストを作成する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # cumulative sum def Cumulative(l): new = [] cumsum = 0 for element in l: cumsum += element new.append(cumsum) &
-
配列の合計を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '