给定一个数组,返回除了最大最小值之外数字的和

function sumArray(array) {
    if (!array) {
        return 0;
    }
    var len = array.length;
    if (len < 2 ) {
        return 0;
    }var small = array[0];
    var big = array[0];
    for (var i = 0; i < len; i++) {
        array[i] > big ? big = array[i] : big;
        array[i] < small ? small = array[i] :small;
    }
    var total = 0;

    for (var z = 0; z < len; z++) {
        total += array[z];
    }
    return total - big - small;
}
// 简洁写法
function sumArray(array) {
  if (array == null) {
    return 0;
  } else if (array.length < 2) {
    return 0;
  } else {
    array = array.sort(function(a,b) {return a - b;});
    var total = 0;
    for (var i = 1; i < array.length - 1; i++) {
      total += array[i];
    }
    return total;
  }
}
function sumArray(array) {

  if (array == null || array.length <= 2) {
    return 0
  }

  var max = Math.max.apply(Math, array);
  var min = Math.min.apply(Math, array);
  var sum = 0

  for (i = 0; i < array.length; i++) {
    sum += array[i];
   }

  return sum - max - min
}
时间: 2024-08-02 23:38:21

给定一个数组,返回除了最大最小值之外数字的和的相关文章

给定一个数组,求如果排序之后,相邻两数的最大差值,要求时 间复杂度O(N),且要求不能用非基于比较的排序

思路: 桶排序 N个数,设置 N+ 1 个桶,,一定有一个空桶,,为的是保证最大差值一定是不是出现在同一个桶中: 只要比较 非空桶 的最小值,与前一个 非空桶的最大值,求 最大的差值, 1 package my_basic; 2 3 import java.text.Bidi; 4 import java.util.Arrays; 5 6 public class MaxGap { 7 8 /*给定一个数组,求如果排序之后,相邻两数的最大差值,要求时 间复杂度O(N),且要求不能用非基于比较的排

java实现求一个数组里最大值和最小值之前缺省的数的算法

问题描述: 求一个数组里最大值和最小值之间缺省的数,例如 int arrDemo = {1, 3, 7};  那么就要输出最小值1和最大值7之间缺少的数字2,4,5,6 代码如下,有更好的思路欢迎大家在评论区留言讨论 1 package test; 2 3 public class Test { 4 5 static int[] array = { 6 -10,0,3,3,9 7 }; 8 9 private static void printEmptyItems(int[] array) {

StringBuffer- 需求,给定一个数组,int [] arr = {44,33,55,66,88}变成[44, 33, 55, 66, 88]

package cn.StringBuffer; /* * * 需求,给定一个数组,int [] arr = {44,33,55,66,88}; * 变成[44, 33, 55, 66, 88] * * */ public class PinJie { public static void main(String[] args) { int [] arr = {44,33,55,66,88}; String str = pinjie(arr); System.out.println("拼接后的字

【笔试题-腾讯】给定一个数组a[N],我们希望构造数组b[N]

腾讯2012实习生笔试题(加分题): 给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i].在构造过程: a)不允许使用除法: b)要求O(1)空间复杂度和O(n)时间复杂度: c)除遍历计数器与a[N] b[N]外,不可使用新的变量(包括栈临时变量.对空间和全局静态变量等): 请用程序实现并简单描述. 题意应该不难理解,乍一看有点儿无从下手的感觉,思考后没有突破的话就想放弃了.看到网上其他同学也给出了解法,代码很简洁,但是理解起来不是

剑指Offer(Java版)第六十七题:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。 例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口, 他们的最大值分别为{4,4,6,6,6,5}。

/*给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}: 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6,2,5],1}, {2,3,4

给定一个数组,获取其中的最大。最小值

/* 获取最大值: 思路: 1.获取最大值需要进行比较,因为每一次比较都会有一个最大值,而这个值不确定,所以要定义一个变量max,临时存储这个最大值 2. 假设最大值是数组中位置0的数值,数组中每一个数值都去和临时存储的最大值作比较,如果大于就替代成新的最大值 3. 所有位置都比较完毕,最后的max就是最大值 步骤: 1. 定义变量max为数组中位置0的数值 2.遍历数组 3.定义判断条件,如果遍历到的数值比变量大,就赋值给变量max */ 1 //第一种方法演示 2 class ArrayTe

给定一个数组,求如果排序后,相邻两个元素的最大差值,要求时间复杂度为O(N)

第一种方法: 计数排序后,然后找出两两之间的最大差值 计数排序的时间复杂度是O(N) public class CountSort { public static void main(String[] args) { int[] arr = new int[] { 2, 5, 12, 8, 6, 90, 34, 10, 10 }; sort(arr); Arrays.stream(arr).forEach(x -> System.out.print(x + " ")); //计算

求一个数组中最大值与最小值

#include <stdio.h> int main() { int array[10]={100,1,40,29,45,22,98,2,83,75}; int max=array[0];//将第一个元素赋值给max int min=array[0];//将第一个元素赋值给min int i; for(i=1;i<10;i++)//通过循环访问剩下的9个数组元素 { if(max<array[i])//将max与剩下的元素比较大小,将比max大的元素赋值给max max=arra

给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到 output[] 数组 最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到 output[] 数组中间两个位置偏右的那个位置上

然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数.例如:input[] = {3, 6, 1, 9, 7} output[] = {3, 7, 9, 6, 1}; input[] = {3, 6, 1, 9, 7, 8} output[] = {1, 6, 8, 9, 7, 3} 1 import java.util.Arrays; 2 public class Solution 3 { 4 /** 5 操作方法 6 */ 7 public static in