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 '