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

消耗时间和内存情况:

相关推荐
不想看见40415 小时前
Word Search -- 回溯法--力扣101算法题解笔记
笔记·算法·leetcode
2501_9011478315 小时前
硬币找零问题的动态规划解法与实现思考笔记
笔记·算法·动态规划
Renhao-Wan15 小时前
Java 算法实践(三):双指针与滑动窗口
java·数据结构·算法
Pluchon15 小时前
硅基计划4.0 算法 图的存储&图的深度广度搜索&最小生成树&单源多源最短路径
java·算法·贪心算法·深度优先·动态规划·广度优先·图搜索算法
YGGP15 小时前
【Golang】LeetCode 3. 无重复字符的最长子串
开发语言·leetcode·golang
牛奶15 小时前
你不知道的JS(中):类型与值
前端·javascript·电子书
今儿敲了吗15 小时前
19| 海底高铁
c++·笔记·学习·算法
冰暮流星15 小时前
javascript之字符串索引数组
开发语言·前端·javascript·算法
御坂10101号15 小时前
Google Ads 转化凭空消失?问题藏在同意横幅的「时机」
前端·javascript·测试工具·网络安全·chrome devtools
Hag_2015 小时前
LeetCode Hot100 3.无重复字符的最长子串
算法·leetcode·职场和发展