学校在拍年度纪念照时,一般要求学生按照 非递减 的高度顺序排列。
请你返回能让所有学生以 非递减 高度排列的最小必要移动人数。
示例:
输入:heights = [1,1,4,2,1,3]
输出:3
提示:
1 <= heights.length <= 100
1 <= heights[i] <= 100
var heightChecker = function (heights) {
// let arr = heights; // 这样做的话,只是把heights的key给了arr,arr会造成动态变化
let arr = new Array();
for (let i = 0; i < heights.length; i++) {
arr[i] = heights[i];
}
for (let i = heights.length; i > 0; i--) {
for (let j = 0; j <= i - 1; j++) {
let temp;
if (heights[j] > heights[j + 1]) {
temp = heights[j];
heights[j] = heights[j + 1];
heights[j + 1] = temp;
}
}
}
let count = 0;
for (let i = 0; i < heights.length; i++) {
if (heights[i] != arr[i]) {
count++
}
}
return count;
};
先保留原数组,再对原数组冒泡,再比对两数组每个元素,不同计数器加一