LeetCode 题解:1051. 高度检查器,JavaScript,先排序再比较,详细注释

发布于: 7 小时前

原题链接:https://leetcode-cn.com/problems/height-checker/

解题思路:

  1. 先明确题意,该题实际上是问,如果有一个未排序的数组,将其进行由低到高排序,前后最少需要移动多少个数字。

  2. 关键就是在于理解“最少需要移动多少个数字”,也就是说,排序前后数组的元素有多少个不同,那么最少也要移动这几个数字,才能达到排序的结果。

  3. 因此实现步骤诶,先对数组进行排序,然后将排序好的数组和原数组进行比较,统计值不同的元素个数即可。

```javascript []

/**

* @param {number[]} heights

* @return {number}

*/

var heightChecker = function(heights) {

// 先对高度进行排序

const sortedHeights = [...heights].sort((a, b) => a - b);

// 储存计数结果

let result = 0;

// 遍历高度数组

heights.forEach((height, index) => {

// 如果当前高度与排序好的高度不一致,则代表其位置需要进行调整,result加1

if (height !== sortedHeights[index]) {

result++;

}

});

return result;

};

```

发布于: 7 小时前 阅读数: 4
用户头像

Lee Chen

关注

还未添加个人签名 2018.08.29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode 题解:1051. 高度检查器,JavaScript,先排序再比较,详细注释