【发布时间】:2019-08-06 22:40:10
【问题描述】:
我对编码很陌生,我正在尽力而为,但经过数小时的研究,我仍然无法弄清楚这一点。我正在尝试以最少的移动次数使这两个单独的数组相同。我一次只能 ++ 或 -- 一个数字。
这是挑战:
不允许对数字重新排序 例如,考虑两个数组: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
}
【问题讨论】:
-
我不清楚您要做什么。请添加更好的描述和输入和预期输出示例,谢谢!
标签: javascript arrays minimum