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

消耗时间和内存情况:

相关推荐
Mr.H012712 分钟前
快速排序的常见构思
数据结构·算法
网络点点滴16 分钟前
watch监视-ref基本类型数据
前端·javascript·vue.js
mit6.82419 分钟前
背包dp|格雷码
算法
大布布将军26 分钟前
《前端九阴真经》
前端·javascript·经验分享·程序人生·前端框架·1024程序员节
幸运小圣28 分钟前
for...of vs for 循环全面对比【前端JS】
开发语言·前端·javascript
rit843249929 分钟前
基于MATLAB的PCA+SVM人脸识别系统实现
人工智能·算法
RTC老炮30 分钟前
webrtc降噪-NoiseEstimator类源码分析与算法原理
算法·webrtc
_志哥_1 小时前
深度解析:解决 backdrop-filter 与 border-radius 的圆角漏光问题
前端·javascript·html
qiao若huan喜2 小时前
10、webgl 基本概念 + 坐标系统 + 立方体
前端·javascript·信息可视化·webgl
不当菜鸡的程序媛2 小时前
Flow Matching|什么是“预测速度场 vt=ε−x”?
人工智能·算法·机器学习