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

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

  1. 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,

  2. 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