gpt4 book ai didi

javascript - 使两个数组具有相同值的最小数字更改次数

转载 作者:行者123 更新时间:2023-11-29 10:56:59 24 4
gpt4 key购买 nike

我对编码还很陌生,我正在尽我最大的努力,但经过数小时的研究,我仍然无法弄清楚这一点。我试图用最少的移动次数使这两个独立的数组相同。我一次只能++ 或 -- 一个数字。

这是挑战:

不允许对数字重新排序 例如,考虑两个数组:Andrea 的 [123, 543] 和 Maria 的 [321, 279]。对于第一个数字,Andrea 可以将 1 递增两次以获得 3。2 已经相等。最后,她将 3 递减两次等于 1。完成她的目标需要 4 步。对于第二个整数,她将 5 递减 3 次,将 4 递增 3 次,将 3 递增 6 次。转换第二个数组元素用了 12 步。总共需要 16 次移动才能转换构成完整数组的两个值。

let a = [1234, 4321]
let m = [2345, 3214]

function minimumMoves(a, m) {
// Write your code here
let numMoves = 0;
let num1 = '' ;
let num2 = '' ;
let digit1 = '';
let digit2= '';
for (let i = 0; i < a.length; i++)
{
num1 = a[i];
while (num1 != 0) {
digit1 = num1 % 10;
digit2 = num2 % 10;
num1 = Math.trunc(num1 / 10);
num2 = Math.trunc(num2 / 10);
numMoves = numMoves + Math.abs(digit1 - digit2);

}
}
return numMoves
}

最佳答案

为了仅获取将一串数字更改为另一串数字的计数,您可以在某个位置添加数字的绝对增量。

function count(a, b) {
return Array.from(a).reduce((s, v, i) => s + Math.abs(v - b[i]), 0);
}

console.log(count('123', '321'));

关于javascript - 使两个数组具有相同值的最小数字更改次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55189569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com