📅  最后修改于: 2023-12-03 15:00:21.636000             🧑  作者: Mango
本篇解决方案将为HackerRank的10天JavaScript挑战的第一天“Functions”问题提供解答。在这个问题中,我们需要创建一个函数,该函数将计算给定整数数组的最大和。我们将使用JavaScript编写解决方案。
/**
* 计算给定整数数组的最大和
* @param {number} arr - 整数数组
* @returns {number} - 最大和
*/
function getMaxSum(arr) {
let maxSum = 0;
for (let i = 0; i < arr.length; i++) {
let currentSum = 0;
for (let j = i; j < arr.length; j++) {
currentSum += arr[j];
if (currentSum > maxSum) {
maxSum = currentSum;
}
}
}
return maxSum;
}
// 测试用例
console.log(getMaxSum([1, -2, 3, 4, -5, 8])); // 输出:13
console.log(getMaxSum([-1, -2, -3, -4, -5])); // 输出:-1
console.log(getMaxSum([1, 2, 3, 4, 5])); // 输出:15
我们首先定义了一个名为getMaxSum
的函数,接受一个整数数组作为参数。在函数内部,我们初始化了一个变量maxSum
来存储最大和的值。然后我们使用两个嵌套的循环来计算数组中所有子数组的和,并将其中的最大和更新到maxSum
中。
外部循环i
从0开始遍历数组元素,内部循环j
从i
开始遍历数组元素。在内部循环中,我们使用变量currentSum
来计算从i
到j
的子数组的和,并将其与maxSum
进行比较。如果currentSum
大于maxSum
,则将maxSum
更新为currentSum
的值。
最后,我们返回maxSum
作为计算得到的最大和。
我们通过一些测试用例来验证我们的解决方案是否正确:
getMaxSum([1, -2, 3, 4, -5, 8])
,预期输出为13
。在这个测试用例中,最大和是从第二个元素开始到最后一个元素,即-2 + 3 + 4 + -5 + 8 = 8
。getMaxSum([-1, -2, -3, -4, -5])
,预期输出为-1
。在这个测试用例中,由于所有的元素都是负数,所以最大和就是最大的元素本身,即-1
。getMaxSum([1, 2, 3, 4, 5])
,预期输出为15
。在这个测试用例中,最大和是整个数组的和,即1 + 2 + 3 + 4 + 5 = 15
。通过这些测试用例,我们可以验证我们的解决方案是否正确。
以上是第一天“Functions”问题的解决方案。希望对你理解和学习JavaScript的函数有所帮助!