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

消耗时间和内存情况:

相关推荐
Live000001 小时前
在鸿蒙中使用 Repeat 渲染嵌套列表,修改内层列表的一个元素,页面不会更新
前端·javascript·react native
柳杉1 小时前
使用Ai从零开发智慧水利态势感知大屏(开源)
前端·javascript·数据可视化
球球pick小樱花2 小时前
游戏官网前端工具库:海内外案例解析
前端·javascript·css
HXhlx2 小时前
CART决策树基本原理
算法·机器学习
喝水的长颈鹿2 小时前
【大白话前端 02】网页从解析到绘制的全流程
前端·javascript
用户14536981458782 小时前
VersionCheck.js - 让前端版本更新变得简单优雅
前端·javascript
codingWhat2 小时前
整理「祖传」代码,就是在开发脚手架?
前端·javascript·node.js
码路飞2 小时前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
Lee川2 小时前
优雅进化的JavaScript:从ES6+新特性看现代前端开发范式
javascript·面试
Wect2 小时前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript