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

JavaScriptで数値の配列を同じ平均の2つの配列に分割する


最初で唯一の引数として整数の配列を受け取るJavaScript関数を作成する必要があります。

関数は、inputarrayの要素の組み合わせが存在するかどうかを判断する必要があります。これらの要素が、2つのグループに分割された場合(等しい要素を持つ場合と持たない場合があります)、両方のグループの平均はまったく同じです。そのような条件が存在する場合、関数はtrueを返し、そうでない場合はfalseを返します。

例-

入力配列が-

の場合
const arr = [6, 3, 2, 8, 1, 5, 7, 4];

その場合、出力は-

になります。
const output = true;

両方のグループの平均が4.5であるため、組み合わせは[8、1、5、4]と[6、3、2、7]であるためです。

以下はコードです-

const arr = [6, 3, 2, 8, 1, 5, 7, 4];
const canHaveEqualAveragePartition = (arr = []) => {
   const sum = arr.reduce((acc, val) => acc + val);
   const array = Array(sum+1).fill(false).map(() =>
   Array(arr.length+1).fill(false));
   array[0][0] = true;
   for(let i=0; i < arr.length; ++i){
      for(let j=sum - arr[i];j>=0;--j){
         for(let k=arr.length-2;k>=0;--k){
            if(array[j][k]){
               array[j + arr[i]][k+1] = true;
               if((j + arr[i]) * (arr.length - k - 1) == (sum - j -arr[i]) * (k + 1)){
                  return true;
               }
            }
         }
      }
   }
   return false;
};
console.log(canHaveEqualAveragePartition(arr));

出力

以下はコンソール出力です-

true

  1. JavaScriptで配列の配列をオブジェクトに変換する

    このようなクリケット選手のパフォーマンスを含む配列の配列があるとします- const arr = [    ['Name', 'V Kohli'],    ['Matches', 13],    ['Runs', 590],    ['Highest', 183],    ['NO', 3],    ['SR', 131.5] ]; このような配列の配列を1つ取り

  2. JavaScriptを使用して、2つの並べ替えられた配列を1つの並べ替えられた配列にマージする

    問題 2つの並べ替えられた数値の配列を受け取るJavaScript関数を作成する必要があります。この関数は、両方の配列のすべての要素を新しい配列にマージし、同じ順序で並べ替えられた新しい配列を返す必要があります。 例 以下はコードです- const arr1 = [1, 3, 4, 5, 6, 8]; const arr2 = [4, 6, 8, 9, 11]; const mergeSortedArrays = (arr1 = [], arr2 = []) => {    const res = [];    let i = 0;