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

JavaScriptで区間の配列の共通部分を見つける


問題

ペアごとに互いに素でソートされた順序の間隔のarr1とarr2の2つの配列を受け取るJavaScript関数。

閉区間[a、b](<=b)は、<=x<=bの実数xのセットを示します。

2つの閉じた区間の共通部分は、空であるか、閉じた区間として表すことができる実数のセットです。たとえば、[1、3]と[2、4]の交点は[2、3]です。)この関数は、これら2つの区間配列の交点を返すことになっています。

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

の場合
const arr1 = [[0,2],[5,10],[13,23],[24,25]];
const arr2 = [[1,5],[8,12],[15,24],[25,26]];

その場合、出力は-

になります。
const output = [[1,2],[5,5],[8,10],[15,23],[24,24],[25,25]];

このためのコードは-

になります
const arr1 = [[0,2],[5,10],[13,23],[24,25]];
const arr2 = [[1,5],[8,12],[15,24],[25,26]];
const findIntersection = function (A, B) {
   const res = []
   let i = 0
   let j = 0
   while (i < A.length && j < B.length) {
      const [a, b] = A[i]
      const [c, d] = B[j]
      const lo = Math.max(a, c)
      const hi = Math.min(b, d)
      if (lo <= hi) {
         res.push([Math.max(a, c), Math.min(b, d)])
      }
      if (b < d) {
         i++
      } else {
         j++
      }
   }
   return res
};
console.log(findIntersection(arr1, arr2));

出力

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

になります
[
   [ 1, 2 ],
   [ 5, 5 ],
   [ 8, 10 ],
   [ 15, 23 ],
   [ 24, 24 ],
   [ 25, 25 ] 
]

  1. JavaScriptConst

    JavaScriptのconst宣言は、他の値に再割り当てしたり、後で再宣言したりできない変数を作成します。 ES2015で導入されました。 以下はJavaScriptconst宣言のコードです- 例 <!DOCTYPE html> <html> <head> <style>    body {       font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;    } </sty

  2. JavaScriptでソートされた3つの配列の交差

    整数の3つの配列をすべて昇順で並べ替えるJavaScript関数を作成する必要があります。次に、関数は3つの配列すべてに存在する要素のみを含む配列を作成して返す必要があります。 例- 入力配列が-の場合 const arr1 = [4, 7, 8, 11, 13, 15, 17]; const arr2 = [1, 3, 4, 13, 18]; const arr3 = [2, 4, 7, 8, 9, 10, 13]; その場合、出力は-になります。 const output = [4, 13]; 例 このためのコードは-になります const arr1 = [4, 7, 8, 11,