zoukankan      html  css  js  c++  java
  • code war 天天一练(3)

    今天又接着来继续做一道有关数组的题:

    这里有一个难点是,数字排序里有负数。使用sort进行排序也会报错。

    所以,几经思考和测试后,我的答案如下:

    function highAndLow(numbers){
      var numArr=[],numArr1=[],numArr2=[];
      numbers.split(' ').map(function(n){
          if(n>=0){
              numArr2.push(n);
          }else{
              numArr1.push(n);
          }
      });
      numArr1.sort((a,b)=>b-a);
      numArr2.sort((a,b)=>b-a);
      numArr = numArr2.concat(numArr1);
      numArr.splice(1,numArr.length-2);
      return numArr.join(' ')
    }

    先将正负数分为两组,再分别进行排序,最后合并数组,取数组的第一位和最后一位即可。

    方法有点笨。哈哈哈,我就是那只笨鸟了。

    最后去查看别人写的代码:

    实践性最强的是

    function highAndLow(numbers){
      numbers = numbers.split(' ').map(Number);
      return Math.max.apply(0, numbers) + ' ' + Math.min.apply(0, numbers);
    }

    直接运用了Math的max和min方法(我怎么就没想到呢?猪脑袋,555...)

    还有一个和我最初想法最接近的:

    function highAndLow(numbers){
      var arr = numbers.split(' ').sort(function(a, b) { return a - b });
      return arr[arr.length -1] + ' ' + arr[0];
    }

    只是当时我写成了

    function highAndLow(numbers){
      numbers.split(' ').sort((a, b)=> a - b });
      numbers.splice(1,numbers.length-2);
      return numbers.join(' ');
    }

    因为没把numbers转换成数组,导致错误(低级错误)

  • 相关阅读:
    创业公司新品如何寻求科技媒体的报道?
    DevStore分享:详析消费者十大心理学
    DevStore教你如何玩转饥饿营销?
    iClap分享:如何优雅的在 APP 中实现测试?
    java内部类
    Tostring 的用法
    Java 集合详解
    Java集合浅析
    异常--解析
    is-a 、have-a、和 like-a的区别
  • 原文地址:https://www.cnblogs.com/gong-zhu/p/7064677.html
Copyright © 2011-2022 走看看