每日一题——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;
};

消耗时间和内存情况:

相关推荐
林希_Rachel_傻希希17 小时前
js里面的proxy理解。以及vue3响应式数据设计底层
前端·javascript·面试
阿黎梨梨17 小时前
AI Loop:告别“人肉写提示词”,让代码替你“鞭策”AI
javascript·人工智能
猿人谷20 小时前
不只是 CPU 阈值:STAR 如何用 GAT + Transformer 做容器级自动扩缩容?
人工智能·算法
竹林81821 小时前
用 wagmi v2 + viem 监听链上事件,我踩了三天坑终于搞懂了实时日志与历史补全
javascript
只一21 小时前
😭从回调地狱到 async/await:一文打通 Ajax 与 JS 异步编程
javascript
复杂网络21 小时前
Stable Diffusion 视觉大模型微调技术深度调研
算法
复杂网络21 小时前
基于 Stable Diffusion 架构的视觉大模型代表性工作与原理深度解析
算法
MrZhao40021 小时前
Agent Loop 如何用 Hook 扩展:权限、日志与工具拦截
算法
MrZhao40021 小时前
Agent 为什么需要 Skills:别把所有知识都塞进 system prompt
算法
weedsfly21 小时前
语法糖褪去之后——Babel 转译产物中的 JavaScript 本貌
前端·javascript