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

方法一 sort排序:

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

javascript 复制代码
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 即可。

javascript 复制代码
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;
};

消耗时间和内存情况:

相关推荐
没有故事的Zhang同学几秒前
04-📦数据结构与算法核心知识 | 动态数组:理论与实践的系统性研究
算法
炽烈小老头5 分钟前
【每天学习一点算法 2025/12/25】爬楼梯
学习·算法·动态规划
睡醒了叭6 分钟前
图像分割-传统算法-阈值分割原理与实践
opencv·算法·计算机视觉
风止何安啊7 分钟前
用 10 行代码就能当 “服务器老板”+“网络小偷”+“文件管家”?Node.js:别不信!
前端·javascript·node.js
m0_6113493114 分钟前
什么是副作用(Side Effects)
开发语言·前端·javascript
CoovallyAIHub17 分钟前
200亿美元“反向收购雇佣”?老黄天价应对谷歌TPU压力
深度学习·算法·计算机视觉
落尘29819 分钟前
Catlass 模板库调试调优经验与踩坑记录
算法
ytttr87319 分钟前
叠前同步反演纵波速度、横波速度和密度三参数
算法
Aniugel22 分钟前
前端服务端渲染 SSR
服务器·javascript
C_心欲无痕26 分钟前
vue3 - shallowReactive浅层响应式对象(只对顶层属性)
前端·javascript·vue.js