每日一题——LeetCode1051.高度检查器

方法一 sort排序:

创建一个元素和heights一模一样的expect数组 ,将expect数组从小到大进行排序,比较heights和expect相同位置不同的元素个数

var heightChecker = function(heights) {
    var expect = [],count=0
    for(const n of heights){
        expect.push(n)
    }
    expect.sort((a,b)=>a-b)
    for(let i=0;i<heights.length;i++){
        if(heights[i]!=expect[i]) count++
    }
   return count
};

消耗时间和内存起情况:

方法二 计数排序

题目已经说明:1<= 数组长度 <=100,1<= 数组元素值 <=100,我们知道操作的次数不会很大。

为了方便操作,我们创建一个101 长度的数组,每遍历到一个数字,就把该数字当做一个索引,找到对应桶中那个索引的值,递增 1 即可。

var heightChecker = function(heights) {
    let bucket = new Array(101).fill(0);
    for (let i of heights) {
        bucket[i]++;
    }
    let ans = 0;
    for (let i = 1, j = 0; i < bucket.length; i++) {
        while (bucket[i]-- > 0) {
            if (heights[j++] !== i) ans++;
        }
    }
    return ans;
};

消耗时间和内存情况:

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-01-07 15:30:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-07 15:30:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-07 15:30:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-07 15:30:01       20 阅读

热门阅读

  1. Redis小计(3)

    2024-01-07 15:30:01       27 阅读
  2. LeetCode //C - 933. Number of Recent Calls

    2024-01-07 15:30:01       36 阅读
  3. python&Matplotlib六:Matplotlib的图例和注释功能

    2024-01-07 15:30:01       38 阅读
  4. tf特征处理常用函数

    2024-01-07 15:30:01       37 阅读
  5. 前端要学哪些

    2024-01-07 15:30:01       38 阅读
  6. 浏览器渲染原理(面试重点)

    2024-01-07 15:30:01       32 阅读
  7. leetcode:32.有效的字母异位词

    2024-01-07 15:30:01       36 阅读
  8. 动态规划问题

    2024-01-07 15:30:01       42 阅读