1051.高度检查器

45 阅读1分钟

题目:
学校打算为全体学生拍一张年度纪念照。根据要求,学生需要按照 非递减 的高度顺序排成一行。

排序后的高度情况用整数数组 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
}