【发布时间】:2020-04-15 12:54:17
【问题描述】:
我正在解决 freecodecamp 的基本算法挑战。挑战是返回数组中的最大数。这是代码。
function largestOfFour(arr) {
// You can do this!
let largestWord = [0,0,0,0];
for(let i = 0; i < arr.length; i++) {
for(let j = 0; j < arr[i].length; j++) {
if(arr[i][j] > largestWord[i]) {
largestWord[i] = arr[i][j];
}
}
}
return largestWord;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
我已经通过了三个标准:
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]) 应该返回一个大批。 通过 largeOfFour([[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]) 应该返回 [27, 5 , 39, 1001]。 通过 maximumOfFour([[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]) 应该返回 [9, 35 , 97, 1000000]。
所有除最大的Four([[17, 23, 25, 12], [25, 7, 34, 48], [4, -10, 18, 21], [-72, -3, - 17, -10]]) 应该返回 [25, 48, 21, -3]。
我哪里做错了?
【问题讨论】:
-
问题很简单!您已将最大值全部设置为
0... 那么哪个更大:0或[-72, -3, -17, -10]中的任何一个?如果你这样做let largestWord = [Number.MIN_SAFE_INTEGER,...]; -
如果您喜欢坚持自己的方法,请执行
let largestWord = Array(arr.length).fill(-Infinity)。但是下面的答案中建议了一种更短的方法。
标签: javascript algorithm