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

JavaScriptで合計が最小の配列からペアの数を見つける


問題

最初の引数と2番目の引数としてそれぞれ整数の2つのソートされた配列、arr1とarr2を受け取るJavaScript関数を作成する必要があります。

関数の3番目の引数は数値、numであり、numは常に両方の配列の長さよりも小さくなります。この関数のタスクは、整数の(num)ペアを選択することです。

各ペアには、arr1からの最初の要素とarr2からの2番目の要素が必要です。ペアの合計が最小になるようにペアを選択する必要があります。最後に、関数はこれらすべての(num)ペアの配列を返す必要があります。

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

の場合
const arr1 = [1, 1, 2];
const arr2 = [1, 2, 3];
const num = 2;

その場合、出力は-

になります。
const output = [
   [1, 1], [1, 1]
]

このためのコードは-

になります
const arr1 = [1, 1, 2];
const arr2 = [1, 2, 3];
const num = 2;
const smallestPairs = (arr1 = [], arr2 = [], num = 1) => {
   const temp = Array(arr1.length).fill(0);
   const res = [];
   let compute = () => {
      let flag = Infinity;
      for (let i = 0; i < arr1.length; i++) {
         if (temp[i] < arr2.length && flag > (arr1[i] + arr2[temp[i]])) {
            flag = arr1[i] + arr2[temp[i]];
         }
      }
      if (flag === Infinity || res.length >= num) {
         return;
      } else {
         for (let i = 0; i < arr1.length; i++) {
            if (temp[i] < arr2.length && flag == (arr1[i] + arr2[temp[i]])) {
               res.push(Array.of(arr1[i], arr2[temp[i]]));
               temp[i]++;
            }
         }
         compute();
      }
   }
   compute();
   return res.slice(0, num);
};
console.log(smallestPairs(arr1, arr2, num));

出力

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

になります
[ [ 1, 1 ], [ 1, 1 ] ]

  1. JavaScriptで数値が三角数かどうかを調べる

    三角数 三角数は、正三角形を埋めることができる点の数です。 たとえば、-9は、各辺が4単位の正三角形を作る三角数です。 問題 数値を受け取り、三角数の場合はtrueを返し、それ以外の場合はfalseを返すJavaScript関数を作成する必要があります。 例 以下はコードです- const num = 9; const isTriangular = (num = 1) => {    let i = 4;    if(num === 1){       return true;    

  2. JavaScriptで1からnまでのすべての数値で割り切れる最小の数値

    問題 数値nを受け取るJavaScript関数を作成する必要があります。この関数は、1からnまでのすべての数値で割り切れる最小の数値を見つけて返す必要があります。 例 以下はコードです- const num = 11; const smallestDivisible = (num = 1) => {    let res = num * (num - 1) || 1;    for (let i = num - 1; i >= 1; i--) {       if (res % i) {   &nb