最大Mn和JavaScript骇客挑战

最大Mn和JavaScript骇客挑战,javascript,max,min,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 large

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

例如
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)
}
函数miniMaxSum(arr){
设最大值=arr[0];
设最小值=arr[0];
设最大和=0;
设smallestSum=0;
for(设i=0;i最大值){
最大值=arr[i];
}
if(arr[i]<最小值){
最小值=arr[i];
}
}
对于(设j=0;j最小值){
最大金额=最大金额+arr[j];
}
}
console.log(smallestSum+“”+largestSum)
}

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

最后返回
sum
max
sum
min
的增量

函数minMaxSum(数组){
变量和=数组[0],
最小值=数组[0],
max=数组[0];
for(设i=1;iarray[i])min=array[i];
如果(maxlog(minMaxSum([1,3,5,7,9])解决方案很简单,只需获取最小值和最大值,对数组求和并提取最小值或最大值,即可获得最大和或最小和

作为假割让:

min_value = find_min_value(arr)
max_value = find_max_value(arr)
max_sum = sum_array(arr) - min_value
min_sum = sum_array(arr) - max_value

:)

这里有一个函数可以解决您的问题

const minMaxSum=(arr)=>{
常量orderedAr=arr.sort((a,b)=>a-b);
const min=orderedAr
.slice(0,4)
.减少((val,acc)=>acc+val,0);
常数max=orderedAr
.slice(-4)
.减少((val,acc)=>acc+val,0);
返回`${min}${max}`;
};
使用ES6:
let number=[3,1,5,9,7]
让升序=JSON.parse(JSON.stringify(numbers)).sort((a,b)=>a-b)
升序
设最小值=上升。减少((a,b)=>a+b)
让descending=JSON.parse(JSON.stringify(numbers)).sort((a,b)=>b-a)
pop()文件
设最大值=下降。减少((a,b)=>a+b)

log(`${min}${max}`)
下面是完整的代码,在所有测试用例正常工作的情况下进行了更优化和清理- 使用Arrays.sort()

import java.io.*;
导入java.math.*;
导入java.security.*;
导入java.text.*;
导入java.util.*;
导入java.util.concurrent.*;
导入java.util.regex.*;
公共类解决方案{
//完成下面的miniMaxSum函数。
静态无效最小和(int[]arr)
{
int min=0;
int max=0;
数组。排序(arr);
对于(int i=0;i0)
{
max+=arr[i];
}

如果(i)最小值和最大值是10和14?你有到hackerrank的链接吗?对不起,是16 24这是否回答了你的问题?
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {

// Complete the miniMaxSum function below.
   static void miniMaxSum(int[] arr) 
    {
       int min=0;
       int max=0;

       Arrays.sort(arr);

       for(int i=0; i<arr.length;i++)
       {
          if(i>0)
          {
             max+=arr[i];
          }
          if(i<4)
          {
            min+=arr[i];
          }
       }
      System.out.println(min + " " + max);
   }

   private static final Scanner scanner = new Scanner(System.in);

   public static void main(String[] args) 
   {
     int[] arr = new int[5];

     String[] arrItems = scanner.nextLine().split(" ");
     scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");

     for (int i = 0; i < 5; i++) 
     {
        int arrItem = Integer.parseInt(arrItems[i]);
        arr[i] = arrItem;
     }

     miniMaxSum(arr);
     scanner.close();
  }
}