javascript - Max-Mn Sum JavaScript HackerRank 挑战

标签 javascript max min

给定五个正整数,找到可以通过将五个整数中的四个精确相加来计算的最小值和最大值。然后将各自的最小值和最大值打印为一行两个空格分隔的长整数。

例如var arr = [1,3,5,7,9]输出将为16 24。

这是我的解决方案。除了一种情况之外,一切都有效。当 arr 中的所有元素都相等时,我的解决方案返回错误。我该如何修复它?

function miniMaxSum(arr) {
    let largest = arr[0];
    let smallest = arr[0];
    let largestSum = 0;
    let smallestSum = 0;
    for(let i = 0; i < arr.length; i ++){
      if(arr[i] > largest){
        largest = arr[i];
      }
      if (arr[i] < smallest){
        smallest = arr[i];
      }
    }
    for(let j = 0; j < arr.length; j ++){
      if(arr[j] < largest){
        smallestSum = smallestSum + arr[j];
      }
      if(arr[j] > smallest){
        largestSum = largestSum + arr[j];
      }
    }
    console.log(smallestSum + " " + largestSum)
}

最佳答案

您可以将第一个值作为 summinmax 值的起始值,并从第二项开始迭代。然后添加实际值并检查 minmax 值并进行调整。

最后返回 summax 以及 summin 的增量。

function minMaxSum(array) {
    var sum = array[0],
        min = array[0],
        max = array[0];
        
    for (let i = 1; i < array.length; i++) {
        sum += array[i];
        if (min > array[i]) min = array[i];
        if (max < array[i]) max = array[i];
    }

    return [sum - max, sum - min];
}

console.log(minMaxSum([1, 3, 5, 7, 9]));

关于javascript - Max-Mn Sum JavaScript HackerRank 挑战,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60362680/

相关文章:

javascript - 在 Ember-data 中以自定义方式保存属性

javascript - 如何解决 eslint "Generic Object Injection Sink"错误?

如果一列没有值,MySQL 返回最大值或 null

r - 查找每组中的最低日期

javascript - 切换 div 以放大并向左滑动

javascript - 如何修改nodejs模块变量?

c - 最小和最大 C 故障

python - 如何在列表列表中创建最大值列表(python)

sql - 如何通过最多一列获取SQL行,按另一列分组

c++ - 使用 std::min "no matching function for call to ‘min(<brace-enclosed initializer list>)’ 时出错“