JavaScriptで必要な合計を持つバイナリサブ配列
問題
最初の引数としてバイナリ配列arrを取り、2番目の引数として数値targetを受け取るJavaScript関数を作成する必要があります。
私たちの関数は、配列arrに存在するサブ配列の数をカウントすることになっています。その要素の合計はcountに等しくなります。最終的にこのカウントを返す必要があります。
たとえば、関数への入力が
入力
const arr = [1, 0, 1, 0, 1]; const target = 2;
出力
const output = 4;
出力の説明
必要なサブアレイは次のとおりです。
[1,0,1][1,0,1,0] [0,1,0,1] [1,0,1]
例
const arr = [1, 0, 1, 0, 1]; const target = 2; const countSubarrays = (arr = [], target = 1) => { const map = {} let sum = 0 let count = 0 for (const num of arr) { map[sum] = (map[sum] || 0) + 1 sum += num count += map[sum - target] || 0 } return count }; console.log(countSubarrays(arr, target));
出力
4
-
C++で合計が偶数のサブ配列の数を検索します
この問題では、N個の要素で構成される配列arr[]が与えられます。私たちのタスクは、合計が偶数のサブ配列を見つけることです。 問題を理解するために例を見てみましょう 入力 arr[] = {2, 1, 3, 4, 2, 5} 出力 28 説明 サブアレイは-です {2}, {4}, {2}, {2, 4}, {2, 2}, {1, 3}, {1, 5}, {3, 5}, {4, 2}, {2, 1, 3}, {2, 1, 5}, {2, 3, 5}, {2, 4, 2}, {1, 3, 4}, {1, 3, 2}, {1, 4, 5}, {1, 2, 5}, {3, 4, 5}, {3,
-
C++で合計を使用するバイナリサブアレイ
0と1の配列Aが与えられたとすると、合計Sを持つ空でないサブ配列の数を見つける必要がありますか?したがって、入力が[1,0,1,0,1]のようで、S =2の場合、サブ配列は[1,0,1,0,1]、[1,0 、1,0,1]、[1,0,1,0,1]、[1,0,1,0,1]。 これを解決するには、次の手順に従います- atMost()というメソッドを定義します。これは、配列Aと整数xを取ります。 x <0の場合、0を返し、j:=0を設定し、ret:=0を設定します。 0からAのサイズまでの範囲のiの場合 xをA[i]減らす x <0 xをA[j]増やし、jを1