在 JavaScript 中使两个序列递增
严格递增序列
序列严格递增当且仅当arr[0] 我们需要编写一个JavaScript函数,该函数接受两个数字数组arr1和arr2分别作为第一个和第二个参数。 我们可以将任意数量的元素从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
