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

消耗时间和内存情况:

相关推荐
ysa0510301 分钟前
【板子】拓扑排序
c++·算法·图论·板子
算法备案代理40 分钟前
宽带自动连接保姆级教程
算法
罗超驿42 分钟前
双指针算法详解:从入门到精通(Java版)
算法·leetcode·职场和发展
m0_377062921 小时前
电池电量计库伦算法计算公式
算法
patrickpdx1 小时前
高联预赛中的高斯函数问题
算法
多加点辣也没关系1 小时前
JavaScript|第12章:属性配置与 getter/setter
javascript
tkevinjd1 小时前
力扣300-最长递增子序列
算法·leetcode·职场和发展·动态规划·贪心
gis开发之家1 小时前
《Vue3 从入门到大神29篇》单元测试与 E2E 测试 —— 保障 Vue3 项目的质量
前端·javascript·vue.js·单元测试·前端框架·vue3
柒和远方2 小时前
从等待到流式:LLM 流式输出的原理、协议与工程实践
javascript·llm
小李飞刀李寻欢2 小时前
DeepSeek V3 版本模型结构分析
算法·大模型·deepseek