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

JavaScriptで2つのシーケンスを増やす


厳密に増加するシーケンス

シーケンスは厳密に増加しています arr [0]

問題

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

arr1からarr2まで、同じインデックスに存在する要素をいくつでも交換できます。これは、arr1[i]をarr2[i]と交換できることを意味します。この関数は、両方のシーケンスを厳密に増加させるために、スワップの最小数を返す必要があります。

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

入力

const arr1 = [1, 3, 5, 4];
const arr2 = [1, 2, 3, 7];

出力

const output = 1;

出力の説明

arr1[3]をarr2[3]と交換すると、両方の配列が厳密に増加するためです。

以下はコードです-

const arr1 = [1, 3, 5, 4];
const arr2 = [1, 2, 3, 7];
const findSwaps = (arr1 = [], arr2 = []) => {
   let map = {
      true: 1,
      false: 0,
   };
   for (let i = 1; i < arr1.length; i++) {
      const current = {
         true: Infinity,
         false: Infinity,
   }
   if (arr1[i] > arr2[i - 1] && arr2[i] > arr1[i - 1]) {
      current.true = Math.min(
      current.true,
      map.false + 1,
   )
   current.false = Math.min(
      current.false,
      map.true)
   }
   if (arr2[i] > arr2[i - 1] && arr1[i] > arr1[i - 1]) {
      current.true = Math.min(
         current.true,
         map.true + 1,
      )
      current.false = Math.min(
         current.false,
         map.false)
      }
      map = current
   }
   return Math.min(
      map.false,
      map.true)
}
console.log(findSwaps(arr1, arr2));

出力

1

  1. 2つのJavaScriptオブジェクトをマージする方法は?

    以下は、2つのJavaScriptオブジェクトをマージするコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> &nbs

  2. JavaScriptで最も長く増加するシーケンスの総数

    問題 最初で唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。 私たちの関数は、最も長く増加するサブシーケンス(連続または非連続)の数を見つけるために必要です。 たとえば、関数への入力が 入力 const arr = [2, 4, 6, 5, 8]; 出力 const output = 2; 出力の説明 最も長く増加する2つのサブシーケンスは、[2、4、5、8]と[2、4、6、8]です。 例 以下はコードです- const arr = [2, 4, 6, 5, 8]; const countSequence = (arr) =&