JS语言-Leetcode1051(slice、sort)

拈花ヽ惹草 提交于 2019-12-02 08:31:44

题目地址:https://leetcode-cn.com/problems/height-checker/

思路:将乱序数组排序后,遍历对比两数组有多少处不同

代码:

/**
 * @param {number[]} heights
 * @return {number}
 */
var heightChecker = function(heights) {
    let sortArr = heights.slice(0,heights.length);
    let number = 0;
    sortArr.sort(function(a, b) {return a - b});
    for(let i = 0; i < heights.length; i++){
      if(heights[i] !== sortArr[i] ){
        number++;
      }
    }
    return number;
};

收获:

arrayObject.slice(start,end):start:必需。    规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。end:可选。    规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。    如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。    如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。返回值:该方法并不会修改原数组,而是返回一个子数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
arrayObject.sort(sortby):sortby:可选。    规定排序顺序。必须是函数。    如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。返回值:对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!