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

JavaScriptで少なくとも2つの要素を持つサブアレイの合計


問題

最初の引数として整数の配列arrを受け取り、2番目と最初の引数としてターゲットの単一の整数を受け取るJavaScript関数を作成する必要があります。この関数は、合計がkの倍数になる、つまり合計がn * kになる、少なくとも2のサイズの連続サブ配列が存在するかどうかをチェックする必要があります。ここで、nは任意の整数です。

存在する場合はtrueを返し、存在しない場合はfalseを返します。

たとえば、関数への入力が-

の場合
const arr = [23, 2, 6, 4, 7];
const target = 6;

その場合、出力は-

になります。
const output = true;

出力の説明:

[23、2、6、4、7]はサイズ5の連続サブアレイであり、合計が42になるためです。

このためのコードは-

になります
const arr = [23, 2, 6, 4, 7];
const target = 6;
const checkSubarraySum = (arr = [], target = 1) => {
   let sum = 0
   const hash = {}
   hash[0] = -1;
   for (let i = 0; i<arr.length; i++) {
      sum += arr[i]
      if (target!=0) sum %= target
      if ( hash[sum] !== undefined ) {
         if(i-hash[sum]>1) return true
      } else {
         hash[sum] = i
      }
   };
   return false;
};
console.log(checkSubarraySum(arr, target));

出力

そして、コンソールの出力は-

になります
true

  1. JavaScriptのBSTの2つの合計

    問題: 最初の引数と2番目の引数として、2つの二分探索木のルートであるroot1とroot2をそれぞれ取り込むJavaScript関数を作成する必要があります。関数の3番目の引数はnumber、targetです。 この関数は、最初のツリーにノードがあり、2番目のツリーにノードがあり、その値の合計が特定の整数ターゲットになる場合にのみTrueを返し、それ以外の場合はfalseを返す必要があります。 たとえば、関数への入力が-の場合 const target = 23; BST その場合、出力は-になります。 const output = true; 出力の説明: 最初のツリーに

  2. Pythonでの2つの合計

    整数の配列があるとします。 2つの整数のインデックスを返す必要があります。これにより、それらを合計すると、指定された特定のターゲットに到達します。ここでは、1つの仮定を取ります。つまり、配列には常に1つの一意のソリューションがあるため、同じターゲットの2つのインデックスセットは存在しません。 たとえば、配列がA =[2、8、12、15]のようで、ターゲットの合計が20であるとすると、A [1] + A [2]=20としてインデックス1と2が返されます。 これを解決するために、配列の各要素をループします。したがって、これを解決するには、次の手順に従ってください。 resと呼ばれる結果を保