题目:
学校打算为全体学生拍一张年度纪念照。根据要求,学生需要按照 非递减 的高度顺序排成一行。
排序后的高度情况用整数数组 expected 表示,其中 expected[i] 是预计排在这一行中第 i 位的学生的高度(下标从 0 开始)。
给你一个整数数组 heights ,表示 当前学生站位 的高度情况。heights[i] 是这一行中第 i 位学生的高度(下标从 0 开始)。
返回满足 **heights[i] != expected[i] 的 下标数量 。
算法:
方法一:计数排序
func heightChecker(heights []int) int {
// 注意sorted长度固定101
sorted := make([]int, 101)
for i := range heights {
sorted[heights[i]] ++
}
ans, index := 0, 0
for i := range sorted {
for sorted[i] > 0 {
if i != heights[index] {
ans ++
}
index ++
sorted[i] --
}
}
return ans
}